[ecj] Fix VM startup with security manager enabled
Gary Benson
gbenson@redhat.com
Fri Dec 1 16:57:00 GMT 2006
Hi all,
This commit fixes VM startup when a security manager is enabled,
which I broke with my previous commit.
Cheers,
Gary
-------------- next part --------------
Index: ChangeLog
===================================================================
--- ChangeLog (revision 119399)
+++ ChangeLog (working copy)
@@ -1,3 +1,13 @@
+2006-12-01 Gary Benson <gbenson@redhat.com>
+
+ * java/net/URLClassLoader.java
+ (findClass): Inhibit calling this.toString() further into VM
+ initialization.
+ (runtimeInitialized): Removed.
+ * java/net/natURLClassLoader.cc: Removed.
+ * Makefile.am: Reflect the above.
+ * Makefile.in: Rebuilt.
+
2006-11-30 Tom Tromey <tromey@redhat.com>
* java/lang/Class.java (getAnnotations): Don't recurse.
Index: java/net/URLClassLoader.java
===================================================================
--- java/net/URLClassLoader.java (revision 119399)
+++ java/net/URLClassLoader.java (working copy)
@@ -1080,7 +1080,10 @@
if (resource == null)
{
String message = className + " not found";
- if (runtimeInitialized())
+ // Calling this.toString() during VM startup when a
+ // security manager is in force causes the stack to
+ // be unwound before it can properly be decoded.
+ if (Thread.currentThread() != null)
message += " in " + this;
throw new ClassNotFoundException(message);
}
@@ -1442,11 +1445,4 @@
return loader;
}
}
-
- /**
- * Tell whether runtime initialization is complete.
- *
- * @return whether runtime initialization is complete.
- */
- private static native boolean runtimeInitialized();
}
Index: java/net/natURLClassLoader.cc
===================================================================
--- java/net/natURLClassLoader.cc (revision 119399)
+++ java/net/natURLClassLoader.cc (working copy)
@@ -1,22 +0,0 @@
-// natURLClassLoader.cc -- Native part of the URLClassLoader class.
-
-/* Copyright (C) 2006 Free Software Foundation, Inc.
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-
-#include <java/net/URLClassLoader.h>
-
-jboolean
-java::net::URLClassLoader::runtimeInitialized ()
-{
- return gcj::runtimeInitialized;
-}
Index: Makefile.am
===================================================================
--- Makefile.am (revision 119399)
+++ Makefile.am (working copy)
@@ -782,7 +782,6 @@
java/lang/reflect/natField.cc \
java/lang/reflect/natMethod.cc \
java/net/natVMInetAddress.cc \
-java/net/natURLClassLoader.cc \
java/net/natVMNetworkInterface.cc \
java/net/natVMURLConnection.cc \
java/nio/channels/natVMChannels.cc \
Index: Makefile.in
===================================================================
--- Makefile.in (revision 119399)
+++ Makefile.in (working copy)
@@ -311,8 +311,7 @@
java/lang/ref/natReference.cc java/lang/reflect/natArray.cc \
java/lang/reflect/natConstructor.cc \
java/lang/reflect/natField.cc java/lang/reflect/natMethod.cc \
- java/net/natVMInetAddress.cc java/net/natURLClassLoader.cc \
- java/net/natVMNetworkInterface.cc \
+ java/net/natVMInetAddress.cc java/net/natVMNetworkInterface.cc \
java/net/natVMURLConnection.cc \
java/nio/channels/natVMChannels.cc \
java/nio/natDirectByteBufferImpl.cc \
@@ -375,8 +374,7 @@
java/lang/ref/natReference.lo java/lang/reflect/natArray.lo \
java/lang/reflect/natConstructor.lo \
java/lang/reflect/natField.lo java/lang/reflect/natMethod.lo \
- java/net/natVMInetAddress.lo java/net/natURLClassLoader.lo \
- java/net/natVMNetworkInterface.lo \
+ java/net/natVMInetAddress.lo java/net/natVMNetworkInterface.lo \
java/net/natVMURLConnection.lo \
java/nio/channels/natVMChannels.lo \
java/nio/natDirectByteBufferImpl.lo \
@@ -7645,7 +7643,6 @@
java/lang/reflect/natField.cc \
java/lang/reflect/natMethod.cc \
java/net/natVMInetAddress.cc \
-java/net/natURLClassLoader.cc \
java/net/natVMNetworkInterface.cc \
java/net/natVMURLConnection.cc \
java/nio/channels/natVMChannels.cc \
@@ -8178,8 +8175,6 @@
@: > java/net/$(DEPDIR)/$(am__dirstamp)
java/net/natVMInetAddress.lo: java/net/$(am__dirstamp) \
java/net/$(DEPDIR)/$(am__dirstamp)
-java/net/natURLClassLoader.lo: java/net/$(am__dirstamp) \
- java/net/$(DEPDIR)/$(am__dirstamp)
java/net/natVMNetworkInterface.lo: java/net/$(am__dirstamp) \
java/net/$(DEPDIR)/$(am__dirstamp)
java/net/natVMURLConnection.lo: java/net/$(am__dirstamp) \
@@ -8577,8 +8572,6 @@
-rm -f java/lang/reflect/natField.lo
-rm -f java/lang/reflect/natMethod.$(OBJEXT)
-rm -f java/lang/reflect/natMethod.lo
- -rm -f java/net/natURLClassLoader.$(OBJEXT)
- -rm -f java/net/natURLClassLoader.lo
-rm -f java/net/natVMInetAddress.$(OBJEXT)
-rm -f java/net/natVMInetAddress.lo
-rm -f java/net/natVMNetworkInterface.$(OBJEXT)
@@ -8724,7 +8717,6 @@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/reflect/$(DEPDIR)/natConstructor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/reflect/$(DEPDIR)/natField.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/reflect/$(DEPDIR)/natMethod.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@java/net/$(DEPDIR)/natURLClassLoader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/net/$(DEPDIR)/natVMInetAddress.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/net/$(DEPDIR)/natVMNetworkInterface.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/net/$(DEPDIR)/natVMURLConnection.Plo@am__quote@
More information about the Java-patches
mailing list