You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2023/07/19 16:56:25 UTC

[openjpa] 02/02: OPENJPA-2911 code cleanup for InterfaceImplGenerator

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 <st...@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);