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