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 <[email protected]>
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();