* 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 311eba7..5712644 100644 (file)
@@ -1,5 +1,9 @@
 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.
 
 2005-04-21  Tom Tromey  <tromey@redhat.com>
index b936947..e29ed68 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();