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)