You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2008/08/08 15:05:17 UTC

svn commit: r683958 - /geronimo/server/branches/2.1/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java

Author: dwoods
Date: Fri Aug  8 06:05:16 2008
New Revision: 683958

URL: http://svn.apache.org/viewvc?rev=683958&view=rev
Log:
GERONIMO-4231 Build exception: java.net.MalformedURLException: no /Applications/Firefox.app/Contents/MacOS/firefox in spec.  Added catch block and a log.debug() of the class name and exception, in case this ever becomes a runtime issue.

Modified:
    geronimo/server/branches/2.1/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java

Modified: geronimo/server/branches/2.1/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java?rev=683958&r1=683957&r2=683958&view=diff
==============================================================================
--- geronimo/server/branches/2.1/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java (original)
+++ geronimo/server/branches/2.1/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java Fri Aug  8 06:05:16 2008
@@ -22,6 +22,7 @@
 import java.io.ObjectOutputStream;
 import java.io.ObjectStreamClass;
 import java.lang.reflect.Field;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.net.URLStreamHandlerFactory;
@@ -447,7 +448,7 @@
      * @return
      * @throws ClassNotFoundException
      */
-    protected synchronized Class<?> loadClassInternal(String name, boolean resolve, LinkedList<ClassLoader> visitedClassLoaders) throws ClassNotFoundException {
+    protected synchronized Class<?> loadClassInternal(String name, boolean resolve, LinkedList<ClassLoader> visitedClassLoaders) throws ClassNotFoundException, MalformedURLException {
         //
         // Check if class is in the loaded classes cache
         //
@@ -495,10 +496,10 @@
      * @throws ClassNotFoundException
      */
     private synchronized Class<?> checkParents(String name, boolean resolve, LinkedList<ClassLoader> visitedClassLoaders) throws ClassNotFoundException {
-     	for (ClassLoader parent : parents) {
-    		if (!visitedClassLoaders.contains(parent)) {
-    	        visitedClassLoaders.add(parent);  // Track that we've been here before
-    		    try {
+        for (ClassLoader parent : parents) {
+            if (!visitedClassLoaders.contains(parent)) {
+                visitedClassLoaders.add(parent);  // Track that we've been here before
+                try {
         	        if (parent instanceof MultiParentClassLoader) {
         	        	Class clazz = ((MultiParentClassLoader) parent).loadClassInternal(name, resolve, visitedClassLoaders);
         	        	if (clazz != null) return resolveClass(clazz, resolve);
@@ -506,9 +507,11 @@
         	        	return parent.loadClass(name);
         	        }
     	    	} catch (ClassNotFoundException cnfe) {
-        	    	// ignore
-        	    }
-    		}
+                    // ignore
+                } catch (MalformedURLException me) {
+                    log.debug("Failed findClass=" + name, me);
+                }
+            }
     	} 
      	// To avoid yet another CNFE we'll simply return null and let the caller handle appropriately.
     	return null;