You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2022/03/25 10:30:38 UTC

[tomee] branch master updated: Fix for JDK 16+

This is an automated email from the ASF dual-hosted git repository.

jlmonteiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/master by this push:
     new 982c75b  Fix for JDK 16+
982c75b is described below

commit 982c75b62984a50432bd4903ae3ce1b640a789fb
Author: Jean-Louis Monteiro <jl...@tomitribe.com>
AuthorDate: Fri Mar 25 11:31:35 2022 +0100

    Fix for JDK 16+
---
 .../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 e0325a4..47afb05 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)