* java/lang/natClass.cc (initializeClass): Link class.
authorTom Tromey <tromey@redhat.com>
Fri, 22 Apr 2005 02:33:31 +0000 (02:33 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Fri, 22 Apr 2005 02:33:31 +0000 (02:33 +0000)
From-SVN: r98540

libjava/ChangeLog
libjava/java/lang/natClass.cc

index 311eba7296657de37afb8b489e6e199dc3b6d810..571264469b12f109b9f8a5afca65ba82430546c6 100644 (file)
@@ -1,3 +1,7 @@
+2005-04-21  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/natClass.cc (initializeClass): Link class.
+
 2005-04-21  Tom Tromey  <tromey@redhat.com>
 
        * java/lang/AssertionError.java: Typo fix.
index b93694790bb04ea3a5bbc0e5a4a70a26ab903c71..e29ed6809ef38bf93a55a3309ec7310bc262d426 100644 (file)
@@ -703,7 +703,20 @@ java::lang::Class::initializeClass (void)
     JvSynchronize sync (this);
 
     if (state < JV_STATE_LINKED)
-      java::lang::VMClassLoader::resolveClass (this);
+      {
+       try
+         {
+           _Jv_Linker::wait_for_state(this, JV_STATE_LINKED);
+         }
+       catch (java::lang::Throwable *x)
+         {
+           // Turn into a NoClassDefFoundError.
+           java::lang::NoClassDefFoundError *result
+             = new java::lang::NoClassDefFoundError(getName());
+           result->initCause(x);
+           throw result;
+         }
+      }
 
     // Step 2.
     java::lang::Thread *self = java::lang::Thread::currentThread();