You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sc...@apache.org on 2007/10/17 18:18:54 UTC
svn commit: r585554 - in /webservices/axis2/trunk/java/modules:
codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
kernel/src/org/apache/axis2/classloader/MultiParentClassLoader.java
Author: scheu
Date: Wed Oct 17 09:18:52 2007
New Revision: 585554
URL: http://svn.apache.org/viewvc?rev=585554&view=rev
Log:
Quick Change to add comments only.
In Java 6, there is a 'regression' in the ClassLoader.loadClass method.
This only occurs when asking to load component classes (i.e. load [LFoo ).
The accepted work-around is to use Class.forName in such cases.
Comments are added with this information. No code changes are made.
Modified:
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/classloader/MultiParentClassLoader.java
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java?rev=585554&r1=585553&r2=585554&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java Wed Oct 17 09:18:52 2007
@@ -332,6 +332,17 @@
Class extensionClass = getClass().getClassLoader().loadClass(className);
return extensionClass.newInstance();
} catch (ClassNotFoundException e) {
+ // TODO REVIEW FOR JAVA 6
+ // In Java 5, if you passed an array string such as "[Lcom.mypackage.MyClass;" to
+ // loadClass, the class would indeed be loaded.
+ // In JDK6, a ClassNotFoundException is thrown.
+ // The work-around is to use code Class.forName instead.
+ // Example:
+ // try {
+ // classLoader.loadClass(name);
+ // } catch (ClassNotFoundException e) {
+ // Class.forName(name, false, loader);
+ // }
log.debug(CodegenMessages.getMessage("engine.extensionLoadProblem"), e);
return null;
} catch (InstantiationException e) {
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/classloader/MultiParentClassLoader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/classloader/MultiParentClassLoader.java?rev=585554&r1=585553&r2=585554&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/classloader/MultiParentClassLoader.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/classloader/MultiParentClassLoader.java Wed Oct 17 09:18:52 2007
@@ -213,6 +213,17 @@
return resolveClass(clazz, resolve);
} catch (ClassNotFoundException ignored) {
// this parent didn't have the class; try the next one
+ // TODO REVIEW FOR JAVA 6
+ // In Java 5, if you passed an array string such as "[Lcom.mypackage.MyClass;" to
+ // loadClass, the class would indeed be loaded.
+ // In JDK6, a ClassNotFoundException is thrown.
+ // The work-around is to use code Class.forName instead.
+ // Example:
+ // try {
+ // classLoader.loadClass(name);
+ // } catch (ClassNotFoundException e) {
+ // Class.forName(name, false, loader);
+ // }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org