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();