costin 01/05/15 14:32:27
Modified: java/src/org/apache/xalan/extensions ExtensionHandler.java
ExtensionHandlerGeneral.java
Log:
Make getClassForName a public method. There are few other places in xalan
where Class.forName is used, and this can create problems in some cases
where the Thread.getContextClassLoader should be used.
getClassForName uses introspection to call getContextClassLoader
( so it works in JDK1.1 ).
In ExtensionHandlerGeneral, use the thread loader to find BSF ( it may be
possible that xalan is installed in CLASSPATH, but BSF is in a webapp ).
Revision Changes Path
1.13 +1 -1
xml-xalan/java/src/org/apache/xalan/extensions/ExtensionHandler.java
Index: ExtensionHandler.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/extensions/ExtensionHandler.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ExtensionHandler.java 2001/01/02 03:36:33 1.12
+++ ExtensionHandler.java 2001/05/15 21:32:14 1.13
@@ -115,7 +115,7 @@
*
* @param className Name of the class to load
*/
- static Class getClassForName(String className)
+ public static Class getClassForName(String className)
throws ClassNotFoundException
{
Class result = null;
1.11 +4 -2
xml-xalan/java/src/org/apache/xalan/extensions/ExtensionHandlerGeneral.java
Index: ExtensionHandlerGeneral.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/extensions/ExtensionHandlerGeneral.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ExtensionHandlerGeneral.java 2001/01/02 03:36:33 1.10
+++ ExtensionHandlerGeneral.java 2001/05/15 21:32:17 1.11
@@ -136,11 +136,13 @@
{
try
{
- managerClass = Class.forName(BSF_MANAGER);
+ //managerClass = Class.forName(BSF_MANAGER);
+ managerClass = ExtensionHandler.getClassForName(BSF_MANAGER);
mgrLoadScriptingEngine = managerClass.getMethod("loadScriptingEngine",
new Class[]{ String.class });
- Class engineClass = Class.forName(BSF_ENGINE);
+ //Class engineClass = Class.forName(BSF_ENGINE);
+ Class engineClass = ExtensionHandler.getClassForName(BSF_ENGINE);
engineExec = engineClass.getMethod("exec", new Class[]{ String.class,
Integer.TYPE,
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]