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


The following commit(s) were added to refs/heads/master by this push:
     new f83cb62c5 OPENJPA-2911 fix ClassLoader issue with temporary bytecode
f83cb62c5 is described below

commit f83cb62c54e7401c8161c7ba513a941963055468
Author: Mark Struberg <strub...@apache.org>
AuthorDate: Wed Jul 19 17:56:12 2023 +0200

    OPENJPA-2911 fix ClassLoader issue with temporary bytecode
---
 .../java/org/apache/openjpa/meta/InterfaceImplGenerator.java | 12 +++---------
 1 file changed, 3 insertions(+), 9 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 f6410eeb2..9f25319f6 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
@@ -44,9 +44,6 @@ import org.apache.xbean.asm9.tree.InsnNode;
 import org.apache.xbean.asm9.tree.MethodNode;
 import org.apache.xbean.asm9.tree.VarInsnNode;
 
-import serp.bytecode.BCClass;
-import serp.bytecode.Project;
-
 /**
  * Creates implementations of managed interfaces.  Will throw exceptions
  * on unknown properties.
@@ -112,12 +109,9 @@ class InterfaceImplGenerator {
             throw new InternalException(_loc.get("interface-load", iface, 
loader), t).setFatal(true);
         }
 
-        // copy the BCClass<?> into the enhancer project.
-        //X bc = _enhProject.loadClass(new 
ByteArrayInputStream(_bc.toByteArray()), loader);
-        //X TODO REMOVE
-        BCClass _bc = new Project().loadClass(getClassName(meta));
-        AsmHelper.readIntoBCClass(bc, _bc);
-        ClassNodeTracker bcEnh = AsmHelper.toClassNode(_enhProject, _bc);
+        // copy the current class bytecode into the enhancer project.
+        final byte[] classBytes = AsmHelper.toByteArray(bc);
+        final ClassNodeTracker bcEnh = _enhProject.loadClass(classBytes, 
parentLoader);
         PCEnhancer enhancer = new PCEnhancer(_repos, bcEnh, meta);
 
         int result = enhancer.run();

Reply via email to