protected final Class defineClass(String name, byte[] data, int offset, int length, ProtectionDomain protDomain) { if (data == null) { throw new NullPointerException(); } if (offset < 0 || length < 0 || (offset + length) > data.length) { throw new IndexOutOfBoundsException(); } if (protDomain == null) {  protDomain = (ProtectionDomain) AccessController .doPrivileged(new PrivilegedAction() {  public Object run() { return getDefaultProtectionDomain(); } }); } return vmClassLoader .defineClass(name, data, offset, length, protDomain).asClass();
protected final Class defineClass(byte[] data, int offset, int length) { return defineClass(null, data, offset, length, null);
    protected final Class defineClass(String name, byte[] data, int offset,            int length, ProtectionDomain protDomain) {        if (data == null) {            throw new NullPointerException();        }        if (offset < 0 || length < 0 || (offset + length) > data.length) {            throw new IndexOutOfBoundsException();        }        if (protDomain == null) {            protDomain = (ProtectionDomain) AccessController                    .doPrivileged(new PrivilegedAction() {                        public Object run() {                            return getDefaultProtectionDomain();                        }                    });        }        return vmClassLoader                .defineClass(name, data, offset, length, protDomain).asClass();    }