This is an automated email from the ASF dual-hosted git repository. rzo1 pushed a commit to branch tomee-8.x in repository https://gitbox.apache.org/repos/asf/tomee.git
commit 8e003c380c31999eead946850782296a60309dc3 Author: Richard Zowalla <[email protected]> AuthorDate: Thu Jul 14 09:44:27 2022 +0200 TOMEE-3878 - Backports TOMEE-3877 to TomEE 8.x (JDK 17 compat) --- .../openejb/util/proxy/LocalBeanProxyFactory.java | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java index 5f464653ba..80f91ac4e5 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java @@ -825,28 +825,11 @@ public class LocalBeanProxyFactory implements Opcodes { if (unsafeDefineClass != null) { return (Class<?>) unsafeDefineClass.invoke(unsafe, proxyName, proxyBytes, 0, proxyBytes.length, loader, clsToProxy.getProtectionDomain()); } else { - return (Class) getClassLoaderDefineClassMethod(loader).invoke(loader, proxyName, proxyBytes, 0, proxyBytes.length, clsToProxy.getProtectionDomain()); + return ClassDefiner.defineClass(loader, proxyName, proxyBytes, clsToProxy, clsToProxy.getProtectionDomain()); + //return (Class) getClassLoaderDefineClassMethod(loader).invoke(loader, proxyName, proxyBytes, 0, proxyBytes.length, clsToProxy.getProtectionDomain()); } } - private static Method getClassLoaderDefineClassMethod(ClassLoader classLoader) { - Class<?> clazz = classLoader.getClass(); - Method defineClassMethod = null; - do { - try { - defineClassMethod = clazz.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class, ProtectionDomain.class); - } catch (NoSuchMethodException e) { - // do nothing, we need to search the superclass - } - clazz = clazz.getSuperclass(); - } while (defineClassMethod == null && clazz != Object.class); - - if (defineClassMethod != null && !defineClassMethod.isAccessible()) { - defineClassMethod.setAccessible(true); - } - return defineClassMethod; - } - } @Target(ElementType.TYPE)
