Browse Source

give conext classloaders in <junit> another try, catch Xalan errors in

TraxLiaisonTest.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271796 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 23 years ago
parent
commit
50d4e58dfd
5 changed files with 26 additions and 6 deletions
  1. +1
    -1
      build.xml
  2. +6
    -1
      src/main/org/apache/tools/ant/AntClassLoader.java
  3. +4
    -0
      src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
  4. +2
    -2
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
  5. +13
    -2
      src/testcases/org/apache/tools/ant/taskdefs/optional/TraXLiaisonTest.java

+ 1
- 1
build.xml View File

@@ -131,7 +131,7 @@
unless="jdk1.2+" />
<!-- uses the context classloader -->
<exclude name="${optional.package}/junit/JUnitClassLoaderTest.java"
/>
unless="jdk1.2+" />
</patternset>
<patternset id="needs.jdk1.3+">
<exclude name="${ant.package}/taskdefs/TestProcess.java"


+ 6
- 1
src/main/org/apache/tools/ant/AntClassLoader.java View File

@@ -402,7 +402,12 @@ public class AntClassLoader extends ClassLoader implements BuildListener {
try {
savedContextLoader
= (ClassLoader)getContextClassLoader.invoke(Thread.currentThread(), new Object[0]);
Object[] args = new Object[] {this};
Object[] args = null;
if ("only".equals(project.getProperty("build.sysclasspath"))) {
args = new Object[] {this.getClass().getClassLoader()};
} else {
args = new Object[] {this};
}
setContextClassLoader.invoke(Thread.currentThread(), args);
isContextLoaderSaved = true;
}


+ 4
- 0
src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java View File

@@ -226,6 +226,10 @@ public class TraXLiaison implements XSLTLiaison, ErrorListener, XSLTLoggerAware
}
private void logError(TransformerException e, String type) {
if (logger == null) {
return;
}
StringBuffer msg = new StringBuffer();
if(e.getLocator() != null) {
if(e.getLocator().getSystemId() != null) {


+ 2
- 2
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java View File

@@ -642,7 +642,7 @@ public class JUnitTask extends Task {
cl.addSystemPackageRoot("junit");
// will cause trouble in JDK 1.1 if omitted
cl.addSystemPackageRoot("org.apache.tools.ant");
//cl.setThreadContextLoader();
cl.setThreadContextLoader();
}
runner = new JUnitTestRunner(test, test.getHaltonerror(), test.getFiltertrace(), test.getHaltonfailure(), cl);
if (summary) {
@@ -673,7 +673,7 @@ public class JUnitTask extends Task {
if (sysProperties != null) {
sysProperties.restoreSystem();
}
//cl.resetThreadContextLoader();
cl.resetThreadContextLoader();
}
}



+ 13
- 2
src/testcases/org/apache/tools/ant/taskdefs/optional/TraXLiaisonTest.java View File

@@ -1,11 +1,14 @@
package org.apache.tools.ant.taskdefs.optional;

import org.apache.tools.ant.taskdefs.XSLTLiaison;
import org.apache.tools.ant.taskdefs.XSLTLogger;
import org.apache.tools.ant.taskdefs.condition.Os;
import org.apache.tools.ant.BuildException;

import java.io.File;

import junit.framework.AssertionFailedError;

/*
* The Apache Software License, Version 1.1
*
@@ -65,7 +68,9 @@ import java.io.File;
* TraX XSLTLiaison testcase
* @author <a href="mailto:sbailliez@apache.org">Stephane Bailliez</a>
*/
public class TraXLiaisonTest extends AbstractXSLTLiaisonTest {
public class TraXLiaisonTest extends AbstractXSLTLiaisonTest
implements XSLTLogger {

public TraXLiaisonTest(String name){
super(name);
}
@@ -78,7 +83,9 @@ public class TraXLiaisonTest extends AbstractXSLTLiaisonTest {
}

public XSLTLiaison createLiaison() throws Exception {
return new TraXLiaison();
TraXLiaison l = new TraXLiaison();
l.setLogger(this);
return l;
}

public void testXalan2Redirect() throws Exception {
@@ -124,4 +131,8 @@ public class TraXLiaisonTest extends AbstractXSLTLiaisonTest {
assertTrue("SystemIDs should not start with file:////", !systemid.startsWith("file:////"));
}

public void log(String message) {
throw new AssertionFailedError("Liaison sent message: "+message);
}

}

Loading…
Cancel
Save