throw new LinkageError("Failed to compile " + name, ex);
final LinkageError le = new LinkageError("Failed to compile " + name); le.initCause(ex); throw le;
    private synchronized void doCompile() {        if (isCompiled()) { return; }        if (!isCompiling()) {            if (loader.isCompileRequired()) {                state |= VmTypeState.ST_COMPILING;                //BootLog.debug("Compiling " + getName());                // Compile the superclass (if any)                if (superClass != null) {                    superClass.compile();                }                // Compile the methods with the least optimizing compiler                final int count;                try {                    count = doCompileRuntime(0);                } catch (Throwable ex) {                    state |= VmTypeState.ST_INVALID;                    state &= ~VmTypeState.ST_COMPILING;                    errorMsg = ex.toString();                    throw new LinkageError("Failed to compile " + name, ex);                }                final int declared = getNoDeclaredMethods();                if (count != declared) {                    errorMsg = "Compiled skipped some methods ("                            + (declared - count);                    throw new LinkageError(errorMsg);                }                state &= ~VmTypeState.ST_COMPILING;                notifyAll();            }        }    }