bodewig 2004/04/16 00:49:42
Modified: . Tag: ANT_16_BRANCH WHATSNEW
src/main/org/apache/tools/ant/taskdefs Tag: ANT_16_BRANCH
XSLTProcess.java
Log:
merge
Revision Changes Path
No revision
No revision
1.503.2.69 +3 -0 ant/WHATSNEW
Index: WHATSNEW
===================================================================
RCS file: /home/cvs/ant/WHATSNEW,v
retrieving revision 1.503.2.68
retrieving revision 1.503.2.69
diff -u -r1.503.2.68 -r1.503.2.69
--- WHATSNEW 14 Apr 2004 16:13:43 -0000 1.503.2.68
+++ WHATSNEW 16 Apr 2004 07:49:42 -0000 1.503.2.69
@@ -43,6 +43,9 @@
the -C switch to gcj. This means you can now compile to native code
with gcj which has been impossible in Ant < 1.6.2.
+* <xslt> now sets the context classloader if you've specified a nested
+ <classpath>. Bugzilla report 24802.
+
Other changes:
--------------
No revision
No revision
1.78.2.5 +21 -3
ant/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
Index: XSLTProcess.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java,v
retrieving revision 1.78.2.4
retrieving revision 1.78.2.5
diff -u -r1.78.2.4 -r1.78.2.5
--- XSLTProcess.java 9 Mar 2004 17:01:34 -0000 1.78.2.4
+++ XSLTProcess.java 16 Apr 2004 07:49:42 -0000 1.78.2.5
@@ -121,6 +121,18 @@
private boolean reuseLoadedStylesheet = true;
/**
+ * AntClassLoader for the nested <classpath> - if set.
+ *
+ * <p>We keep this here in order to reset the context classloader
+ * in execute. We can't use liaison.getClass().getClassLoader()
+ * since the actual liaison class may have been loaded by a loader
+ * higher up (system classloader, for example).</p>
+ *
+ * @since Ant 1.6.2
+ */
+ private AntClassLoader loader = null;
+
+ /**
* Creates a new XSLTProcess Task.
*/
public XSLTProcess() {
@@ -170,6 +182,7 @@
if (inFile != null && !inFile.exists()) {
throw new BuildException("input file " + inFile.toString() + "
does not exist", getLocation());
}
+
try {
if (baseDir == null) {
baseDir = getProject().resolveFile(".");
@@ -233,6 +246,10 @@
}
}
} finally {
+ if (loader != null) {
+ loader.resetThreadContextLoader();
+ loader = null;
+ }
liaison = null;
stylesheetLoaded = false;
baseDir = savedBaseDir;
@@ -379,8 +396,9 @@
if (classpath == null) {
return Class.forName(classname);
} else {
- AntClassLoader al = getProject().createClassLoader(classpath);
- Class c = Class.forName(classname, true, al);
+ loader = getProject().createClassLoader(classpath);
+ loader.setThreadContextLoader();
+ Class c = Class.forName(classname, true, loader);
return c;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]