This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
4.0 Patch: Fix bootstrap classloader deadlock
- From: Bryce McKinlay <mckinlay at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: Sat, 01 Oct 2005 02:07:44 -0400
- Subject: 4.0 Patch: Fix bootstrap classloader deadlock
This is the first of several fixes to be backported to the 4.0 branch
now that it has reopened. See here for a description of the patch:
http://gcc.gnu.org/ml/java-patches/2005-q3/msg00412.html
I'm checking this in.
Bryce
2005-10-01 Bryce McKinlay <mckinlay@redhat.com>
* gnu/gcj/runtime/BootClassLoader.java (BootClassLoader): Pass
`null' parent ClassLoader to parent constructor.
* gnu/gcj/runtime/HelperClassLoader.java (HelperClassLoader): New
constructor.
Index: gnu/gcj/runtime/HelperClassLoader.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/gcj/runtime/HelperClassLoader.java,v
retrieving revision 1.1
diff -u -r1.1 HelperClassLoader.java
--- gnu/gcj/runtime/HelperClassLoader.java 29 Mar 2005 22:54:04 -0000 1.1
+++ gnu/gcj/runtime/HelperClassLoader.java 10 Aug 2005 19:08:10 -0000
@@ -25,6 +25,11 @@
{
super(new URL[0]);
}
+
+ HelperClassLoader(ClassLoader parent)
+ {
+ super(new URL[0], parent);
+ }
/**
* This is a helper method that adds all the jar and zip files from
Index: gnu/gcj/runtime/BootClassLoader.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/gcj/runtime/BootClassLoader.java,v
retrieving revision 1.3
diff -u -r1.3 BootClassLoader.java
--- gnu/gcj/runtime/BootClassLoader.java 29 Mar 2005 21:47:03 -0000 1.3
+++ gnu/gcj/runtime/BootClassLoader.java 10 Aug 2005 19:08:10 -0000
@@ -23,6 +23,9 @@
{
BootClassLoader(String libdir)
{
+ // The BootClassLoader is the top of the delegation chain. It has no
+ // parent.
+ super((ClassLoader) null);
addDirectoriesFromProperty("java.endorsed.dirs");
addDirectoriesFromProperty("gnu.gcj.runtime.endorsed.dirs");