@Override protected Class<?> findClass(String name) throws ClassNotFoundException { if (!needIntercept(name)) { return super.findClass(name); URL resource = findResource(name.replace('.', '/') + ".class"); if (resource == null) { throw new ClassNotFoundException("Failed to find resource for class " + name); byte[] bytecode = rewriteClass(name, is); String packageName = getPackageName(name); if (packageName != null && getPackage(packageName) == null) { Manifest manifest = getManifest(resource); if (manifest == null) { definePackage(packageName, null, null, null, null, null, null, null); } else { definePackage(packageName, manifest, resource); return defineClass(name, bytecode, 0, bytecode.length); } catch (IOException e) { throw new ClassNotFoundException("Failed to read class definition for class " + name, e);
@Override protected Class<?> findClass(String name) throws ClassNotFoundException { if (!needIntercept(name)) { return super.findClass(name); URL resource = findResource(name.replace('.', '/') + ".class"); if (resource == null) { throw new ClassNotFoundException("Failed to find resource for class " + name); byte[] bytecode = rewriteClass(name, is); String packageName = getPackageName(name); if (packageName != null && getPackage(packageName) == null) { Manifest manifest = getManifest(resource); if (manifest == null) { definePackage(packageName, null, null, null, null, null, null, null); } else { definePackage(packageName, manifest, resource); return defineClass(name, bytecode, 0, bytecode.length); } catch (IOException e) { throw new ClassNotFoundException("Failed to read class definition for class " + name, e);