if (name.startsWith("org.mmtk.")) {
if (name.startsWith("org.mmtk.") || type.isEnum()) {
    protected void copyStaticFields(VmSystemClassLoader cl,            VmSharedStatics sharedStatics, VmIsolatedStatics isolatedStatics,            NativeStream os, ObjectEmitter emitter)            throws ClassNotFoundException {        for (VmType< ? > type : cl.getLoadedClasses()) {            final String name = type.getName();            final int cnt = type.getNoDeclaredFields();            if ((cnt > 0) && !name.startsWith("java.")) {                final Class javaType = Class.forName(type.getName());                try {                    final FieldInfo fieldInfo = emitter.getFieldInfo(javaType);                    final Field[] jdkFields = fieldInfo.getJdkStaticFields();                    final int max = jdkFields.length;                    for (int k = 0; k < max; k++) {                        final Field jdkField = jdkFields[k];                        if (jdkField != null) {                            final VmField f = fieldInfo.getJNodeStaticField(k);                            if (!f.isTransient()) {                                try {                                    copyStaticField(type, f, jdkField,                                            sharedStatics, isolatedStatics, os,                                            emitter);                                } catch (IllegalAccessException ex) {                                    throw new BuildException(ex);                                }                            }                        }                    }                    if (name.startsWith("org.mmtk.")) {                        type.setInitialized();                    }                } catch (JNodeClassNotFoundException ex) {                    log("JNode class not found" + ex.getMessage());                }            }        }    }