You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by "Rice Yeh (JIRA)" <ji...@apache.org> on 2006/09/27 11:47:50 UTC
[jira] Created: (COCOON-1921) A bug in
org.apache.cocoon.classloader.DefaultClassLoader
A bug in org.apache.cocoon.classloader.DefaultClassLoader
---------------------------------------------------------
Key: COCOON-1921
URL: http://issues.apache.org/jira/browse/COCOON-1921
Project: Cocoon
Issue Type: Bug
Components: * Cocoon Core
Affects Versions: 2.2-dev (Current SVN)
Reporter: Rice Yeh
On the implementation of loadClass(String name, boolean resolve) in DefaultClassLoader , when there is no class found in child (that is, this classloader) classloader, the parent's loadClass() method is called. However, on present implementation it is parent.loadClass(name) called, which is the java.lang.ClassLoader's loadClass() called and it uses parent-first loading strategy. In order to use child-first strategy (if the parent is also a DefaultClassLoader), the following patch should be applied:
Index: C:/apache/cocoon.home/svn/trunk/core/cocoon-bootstrap/src/main/java/org/apache/cocoon/classloader/DefaultClassLoader.java
===================================================================
--- C:/apache/cocoon.home/svn/trunk/core/cocoon-bootstrap/src/main/java/org/apache/cocoon/classloader/DefaultClassLoader.java (revision 449580)
+++ C:/apache/cocoon.home/svn/trunk/core/cocoon-bootstrap/src/main/java/org/apache/cocoon/classloader/DefaultClassLoader.java (working copy)
@@ -130,7 +130,10 @@
throw new ClassNotFoundException(name);
} else {
// Will throw a CFNE if not found in parent
- clazz = parent.loadClass(name);
+ if (parent instanceof DefaultClassLoader)
+ clazz = ((DefaultClassLoader) parent).loadClass(name, resolve);
+ else
+ clazz = parent.loadClass(name);
}
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Closed: (COCOON-1921) A bug in
org.apache.cocoon.classloader.DefaultClassLoader
Posted by "Carsten Ziegeler (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/jira/browse/COCOON-1921?page=all ]
Carsten Ziegeler closed COCOON-1921.
------------------------------------
Resolution: Won't Fix
We discussed this some time ago on the mailing list: the patch is not required
> A bug in org.apache.cocoon.classloader.DefaultClassLoader
> ---------------------------------------------------------
>
> Key: COCOON-1921
> URL: http://issues.apache.org/jira/browse/COCOON-1921
> Project: Cocoon
> Issue Type: Bug
> Components: * Cocoon Core
> Affects Versions: 2.2-dev (Current SVN)
> Reporter: Rice Yeh
>
> On the implementation of loadClass(String name, boolean resolve) in DefaultClassLoader , when there is no class found in child (that is, this classloader) classloader, the parent's loadClass() method is called. However, on present implementation it is parent.loadClass(name) called, which is the java.lang.ClassLoader's loadClass() called and it uses parent-first loading strategy. In order to use child-first strategy (if the parent is also a DefaultClassLoader), the following patch should be applied:
> Index: C:/apache/cocoon.home/svn/trunk/core/cocoon-bootstrap/src/main/java/org/apache/cocoon/classloader/DefaultClassLoader.java
> ===================================================================
> --- C:/apache/cocoon.home/svn/trunk/core/cocoon-bootstrap/src/main/java/org/apache/cocoon/classloader/DefaultClassLoader.java (revision 449580)
> +++ C:/apache/cocoon.home/svn/trunk/core/cocoon-bootstrap/src/main/java/org/apache/cocoon/classloader/DefaultClassLoader.java (working copy)
> @@ -130,7 +130,10 @@
> throw new ClassNotFoundException(name);
> } else {
> // Will throw a CFNE if not found in parent
> - clazz = parent.loadClass(name);
> + if (parent instanceof DefaultClassLoader)
> + clazz = ((DefaultClassLoader) parent).loadClass(name, resolve);
> + else
> + clazz = parent.loadClass(name);
> }
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira