This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git
commit b04c985956815dc3c50d2593c075197a6120ee73 Author: Mark Struberg <strub...@apache.org> AuthorDate: Wed Jul 19 18:55:53 2023 +0200 OPENJPA-2911 code cleanup for InterfaceImplGenerator --- .../java/org/apache/openjpa/meta/InterfaceImplGenerator.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java b/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java index 9f25319f6..78c059f36 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java @@ -81,16 +81,13 @@ class InterfaceImplGenerator { // distinct temp project / loader for enhancing EnhancementProject _enhProject = new EnhancementProject(); - ClassLoader parentLoader = AccessController.doPrivileged( - J2DoPrivHelper.getClassLoaderAction(iface)); + ClassLoader parentLoader = AccessController.doPrivileged(J2DoPrivHelper.getClassLoaderAction(iface)); EnhancementClassLoader loader = new EnhancementClassLoader(_project, parentLoader); - EnhancementClassLoader enhLoader = new EnhancementClassLoader(_enhProject, parentLoader); ClassNodeTracker bc = _project.loadClass(getClassName(meta), loader); bc.declareInterface(iface); ClassMetaData sup = meta.getPCSuperclassMetaData(); if (sup != null) { bc.getClassNode().superName = Type.getInternalName(sup.getInterfaceImpl()); - enhLoader = new EnhancementClassLoader(_enhProject, sup.getInterfaceImpl().getClassLoader()); } FieldMetaData[] fields = meta.getDeclaredFields(); @@ -123,7 +120,9 @@ class InterfaceImplGenerator { EnhancementProject finalProject = new EnhancementProject(); EnhancementClassLoader finalLoader = new EnhancementClassLoader(finalProject, parentLoader); final byte[] classBytes2 = AsmHelper.toByteArray(enhancer.getPCBytecode()); - ClassNodeTracker bcEnh2 = finalProject.loadClass(classBytes2, finalLoader); + + // this is just to make the ClassLoader aware of the bytecode for the enhanced class + finalProject.loadClass(classBytes2, finalLoader); String pcClassName = enhancer.getPCBytecode().getClassNode().name.replace("/", "."); impl = Class.forName(pcClassName, true, finalLoader);