clinit.compile(); if (verboseBoot >= 10) VM.sysWriteln("invoking method " + clinit); try { VM_Magic.invokeClassInitializer(clinit.getCurrentInstructions()); } catch (Error e) { throw e; } catch (Throwable t) { ExceptionInInitializerError eieio = new ExceptionInInitializerError( "Caught exception while invoking the class initializer for" +  className); eieio.initCause(t); throw eieio; }
if (clinit != null) { clinit.compile(); if (verboseBoot >= 10) VM.sysWriteln("invoking method " + clinit); try { VM_Magic.invokeClassInitializer(clinit.getCurrentInstructions()); } catch (Error e) { throw e; } catch (Throwable t) { ExceptionInInitializerError eieio = new ExceptionInInitializerError("Caught exception while invoking the class initializer for" +  className); eieio.initCause(t); throw eieio; } } else { if (verboseBoot >= 10) VM.sysWriteln("has no clinit method "); }
  static void runClassInitializer(String className) throws VM_PragmaInterruptible {    if (verboseBoot >= 2) {      sysWrite("running class intializer for ");      sysWriteln(className);    }    VM_Atom  classDescriptor =       VM_Atom.findOrCreateAsciiAtom(className.replace('.','/')).descriptorFromClassName();    VM_TypeReference tRef = VM_TypeReference.findOrCreate(VM_SystemClassLoader.getVMClassLoader(), classDescriptor);    VM_Class cls = (VM_Class)tRef.peekResolvedType();    if (cls != null && cls.isInBootImage()) {      VM_Method clinit = cls.getClassInitializerMethod();      clinit.compile();      if (verboseBoot >= 10) VM.sysWriteln("invoking method " + clinit);      try {	VM_Magic.invokeClassInitializer(clinit.getCurrentInstructions());      } catch (Error e) {	throw e;      } catch (Throwable t) {	ExceptionInInitializerError eieio	  = new ExceptionInInitializerError(		    "Caught exception while invoking the class initializer for"		    +  className);	eieio.initCause(t);	throw eieio;      }      cls.setAllFinalStaticJTOCEntries();    }  }