You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rz...@apache.org on 2022/07/14 07:45:41 UTC

[tomee] 02/02: TOMEE-3878 - Backports TOMEE-3877 to TomEE 8.x (JDK 17 compat)

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 <13...@users.noreply.github.com>
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)