You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2017/08/03 22:15:27 UTC
[1/5] tomee git commit: Forward porting
4e69b3fe8d640445cf90a9a94d8c132e52535939 TOMEE-2082 attempting to allow
classes without no-arg constructors to be sub-classes
Repository: tomee
Updated Branches:
refs/heads/master 6f9b67b39 -> 9cd843883
Forward porting 4e69b3fe8d640445cf90a9a94d8c132e52535939 TOMEE-2082 attempting to allow classes without no-arg constructors to be sub-classes
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/bd79546d
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/bd79546d
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/bd79546d
Branch: refs/heads/master
Commit: bd79546df6372f308a553eb0006ec7e1e854fe71
Parents: b2973d7
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Tue Aug 1 23:47:58 2017 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Tue Aug 1 23:47:58 2017 +0100
----------------------------------------------------------------------
.../org/apache/openejb/dyni/DynamicSubclass.java | 2 +-
.../openejb/resource/AutoConnectionTracker.java | 16 ++++------------
.../openejb/util/proxy/LocalBeanProxyFactory.java | 2 +-
.../apache/openejb/config/ConnectorProxyTest.java | 10 ++++++++--
4 files changed, 14 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/bd79546d/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java b/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
index 5c27658..123c0ff 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
@@ -134,7 +134,7 @@ public class DynamicSubclass implements Opcodes {
for (final Map.Entry<String, List<Method>> entry : methodMap.entrySet()) {
for (final Method method : entry.getValue()) {
- if (Modifier.isAbstract(method.getModifiers())) {
+ if (Modifier.isPublic(method.getModifiers())) {
final MethodVisitor visitor = LocalBeanProxyFactory.visit(cw, method, proxyClassFileName, "this$handler");
visitors.put(method.getName() + Type.getMethodDescriptor(method), visitor);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/bd79546d/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
index 0a26bad..7ec8ecb 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
@@ -25,6 +25,7 @@ import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrack
import org.apache.openejb.dyni.DynamicSubclass;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.proxy.LocalBeanProxyFactory;
import javax.resource.ResourceException;
import javax.resource.spi.DissociatableManagedConnection;
@@ -126,18 +127,9 @@ public class AutoConnectionTracker implements ConnectionTracker {
loader = ClassLoader.getSystemClassLoader();
}
if (!Proxy.isProxyClass(handle.getClass())) {
- try {
- handle.getClass().getConstructor(); // if not let's the user reuse the impl-ed interfaces
- try {
- final Object proxy = getProxy(handle.getClass(), loader).newInstance();
- DynamicSubclass.setHandler(proxy, invocationHandler);
- return proxy;
- } catch (final InstantiationException | IllegalAccessException e) {
- throw new IllegalStateException(e);
- }
- } catch (final NoSuchMethodException e1) {
- // no-op
- }
+ final Object proxy = LocalBeanProxyFactory.Unsafe.allocateInstance(getProxy(handle.getClass(), loader));
+ DynamicSubclass.setHandler(proxy, invocationHandler);
+ return proxy;
}
return Proxy.newProxyInstance(loader, getAPi(handle.getClass()), invocationHandler);
http://git-wip-us.apache.org/repos/asf/tomee/blob/bd79546d/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java
----------------------------------------------------------------------
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 cd9cb7e..9a56db7 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
@@ -788,7 +788,7 @@ public class LocalBeanProxyFactory implements Opcodes {
});
}
- private static Object allocateInstance(final Class clazz) {
+ public static Object allocateInstance(final Class clazz) {
try {
return allocateInstance.invoke(unsafe, clazz);
} catch (final IllegalAccessException e) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/bd79546d/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyTest.java b/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyTest.java
index 5db51c6..9092507 100644
--- a/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyTest.java
+++ b/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyTest.java
@@ -203,8 +203,14 @@ public class ConnectorProxyTest {
}
public static class MyCon implements MyConAPI {
+ private final String arg;
+
+ public MyCon(String arg) {
+ this.arg = arg;
+ }
+
public String specific() {
- return "yes";
+ return arg;
}
@Override
@@ -236,7 +242,7 @@ public class ConnectorProxyTest {
public static class MyMC implements ManagedConnection {
@Override
public Object getConnection(final Subject subject, final ConnectionRequestInfo cxRequestInfo) throws ResourceException {
- return new MyCon();
+ return new MyCon("yes");
}
@Override
[5/5] tomee git commit: Merge remote-tracking branch 'apache/master'
into ra-proxy-work
Posted by jg...@apache.org.
Merge remote-tracking branch 'apache/master' into ra-proxy-work
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/9cd84388
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/9cd84388
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/9cd84388
Branch: refs/heads/master
Commit: 9cd843883ab8fbb8c5afe64dc9f5c038bec2c28b
Parents: fc62c3a 6f9b67b
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Thu Aug 3 23:14:49 2017 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Thu Aug 3 23:14:49 2017 +0100
----------------------------------------------------------------------
README.md | 1 -
.../openejb/assembler/classic/Assembler.java | 78 +++++++-
.../openejb/assembler/classic/ResourceInfo.java | 2 +
.../apache/openejb/core/mdb/MdbContainer.java | 21 ++-
.../ApplicationResourceLifecycleTest.java | 84 +++++++++
.../core/mdb/ResourceAdapterControlTest.java | 16 +-
.../mdb/ResourceAdapterDeliveryActiveTest.java | 184 +++++++++++++++++++
.../src/test/resources/app-resources.xml | 21 +++
pom.xml | 2 +-
9 files changed, 396 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
[4/5] tomee git commit: Fix failing tests
Posted by jg...@apache.org.
Fix failing tests
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/fc62c3a9
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/fc62c3a9
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/fc62c3a9
Branch: refs/heads/master
Commit: fc62c3a9a79623ad318afde53c21adad9d5bf2d3
Parents: efbdc87
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Wed Aug 2 13:43:39 2017 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Wed Aug 2 13:43:39 2017 +0100
----------------------------------------------------------------------
.../activemq/ActiveMQResourceAdapter.java | 44 ++++++++++++++++----
.../ConnectorProxyNoNoArgConstructorTest.java | 2 +-
2 files changed, 36 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/fc62c3a9/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
index e5f201e..1437a95 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
@@ -47,6 +47,7 @@ import javax.naming.NamingException;
import javax.resource.ResourceException;
import javax.resource.spi.BootstrapContext;
import javax.resource.spi.ResourceAdapterInternalException;
+import java.lang.reflect.Field;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
@@ -234,18 +235,27 @@ public class ActiveMQResourceAdapter extends org.apache.activemq.ra.ActiveMQReso
Connection connection = connectionFactory.createConnection();
if (Proxy.isProxyClass(connection.getClass())) { // not great, we should find a better want without bypassing ra layer
final InvocationHandler invocationHandler = Proxy.getInvocationHandler(connection);
- if (AutoConnectionTracker.ConnectionInvocationHandler.class.isInstance(invocationHandler)) {
- final Object handle = Reflections.get(invocationHandler, "handle");
- if (TomEEManagedConnectionProxy.class.isInstance(handle)) {
- final ActiveMQManagedConnection c = ActiveMQManagedConnection.class.cast(Reflections.get(handle, "connection"));
- final ActiveMQConnection physicalConnection = ActiveMQConnection.class.cast(Reflections.get(c, "physicalConnection"));
- final RedeliveryPolicy redeliveryPolicy = activationSpec.redeliveryPolicy();
- if (redeliveryPolicy != null) {
- physicalConnection.setRedeliveryPolicy(redeliveryPolicy);
- }
+ final ActiveMQConnection physicalConnection = getActiveMQConnection(activationSpec, invocationHandler);
+ if (physicalConnection != null) {
+ return physicalConnection;
+ }
+ }
+
+ // see if this is a dynamic subclass as opposed to a regular proxy
+ try {
+ final Field handler = connection.getClass().getDeclaredField("this$handler");
+ handler.setAccessible(true);
+ final Object o = handler.get(connection);
+
+ if (InvocationHandler.class.isInstance(o)) {
+ final InvocationHandler invocationHandler = InvocationHandler.class.cast(o);
+ final ActiveMQConnection physicalConnection = getActiveMQConnection(activationSpec, invocationHandler);
+ if (physicalConnection != null) {
return physicalConnection;
}
}
+ } catch (NoSuchFieldException | IllegalAccessException e) {
+ // ignore, this is not a dynamic subclass
}
/*
@@ -266,6 +276,22 @@ public class ActiveMQResourceAdapter extends org.apache.activemq.ra.ActiveMQReso
return super.makeConnection(activationSpec);
}
+ private ActiveMQConnection getActiveMQConnection(MessageActivationSpec activationSpec, InvocationHandler invocationHandler) {
+ if (AutoConnectionTracker.ConnectionInvocationHandler.class.isInstance(invocationHandler)) {
+ final Object handle = Reflections.get(invocationHandler, "handle");
+ if (TomEEManagedConnectionProxy.class.isInstance(handle)) {
+ final ActiveMQManagedConnection c = ActiveMQManagedConnection.class.cast(Reflections.get(handle, "connection"));
+ final ActiveMQConnection physicalConnection = ActiveMQConnection.class.cast(Reflections.get(c, "physicalConnection"));
+ final RedeliveryPolicy redeliveryPolicy = activationSpec.redeliveryPolicy();
+ if (redeliveryPolicy != null) {
+ physicalConnection.setRedeliveryPolicy(redeliveryPolicy);
+ }
+ return physicalConnection;
+ }
+ }
+ return null;
+ }
+
@Override
protected ActiveMQConnectionFactory createConnectionFactory(final ActiveMQConnectionRequestInfo connectionRequestInfo, final MessageActivationSpec activationSpec) {
if (TomEEMessageActivationSpec.class.isInstance(activationSpec)) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/fc62c3a9/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyNoNoArgConstructorTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyNoNoArgConstructorTest.java b/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyNoNoArgConstructorTest.java
index c0d2e13..b4bd1b7 100644
--- a/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyNoNoArgConstructorTest.java
+++ b/container/openejb-core/src/test/java/org/apache/openejb/config/ConnectorProxyNoNoArgConstructorTest.java
@@ -93,7 +93,7 @@ public class ConnectorProxyNoNoArgConstructorTest {
final Connection connection = jndi.getConnection();
assertTrue(MyConAPI.class.isInstance(connection));
- assertFalse(MyCon.class.isInstance(connection));
+ assertTrue(MyCon.class.isInstance(connection));
}
public static class MyRa implements javax.resource.spi.ResourceAdapter {
[3/5] tomee git commit: Build fixes
Posted by jg...@apache.org.
Build fixes
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/efbdc87f
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/efbdc87f
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/efbdc87f
Branch: refs/heads/master
Commit: efbdc87fa6e0de223c90aec5fbc3ce749b05cb9e
Parents: dec5396
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Wed Aug 2 12:26:40 2017 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Wed Aug 2 12:26:40 2017 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/openejb/dyni/DynamicSubclass.java | 2 +-
.../java/org/apache/openejb/resource/AutoConnectionTracker.java | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/efbdc87f/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java b/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
index 44e1256..7ce6934 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
@@ -84,7 +84,7 @@ public class DynamicSubclass implements Opcodes {
// no-op
}
- return LocalBeanProxyFactory.Unsafe.defineClass(abstractClass, proxyName, generateBytes(abstractClass));
+ return LocalBeanProxyFactory.Unsafe.defineClass(cl, abstractClass, proxyName, generateBytes(abstractClass, proxyNonAbstractMethods));
} catch (final Exception e) {
throw new InternalError(DynamicSubclass.class.getSimpleName() + ".createSubclass: " + Debug.printStackTrace(e));
http://git-wip-us.apache.org/repos/asf/tomee/blob/efbdc87f/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
index 125e37a..e896aa1 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
@@ -23,6 +23,8 @@ import org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor;
import org.apache.geronimo.connector.outbound.ManagedConnectionInfo;
import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTracker;
import org.apache.openejb.dyni.DynamicSubclass;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
import org.apache.openejb.util.proxy.LocalBeanProxyFactory;
import javax.resource.ResourceException;
[2/5] tomee git commit: Don't break the dynamic abstract ejb concept.
Remove unnecessary imports
Posted by jg...@apache.org.
Don't break the dynamic abstract ejb concept. Remove unnecessary imports
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/dec53967
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/dec53967
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/dec53967
Branch: refs/heads/master
Commit: dec53967a462ad315f0211ba5d7dfa7954d1a5bf
Parents: bd79546
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Thu Jun 29 16:11:52 2017 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Wed Aug 2 10:50:58 2017 +0100
----------------------------------------------------------------------
.../org/apache/openejb/dyni/DynamicSubclass.java | 16 +++++++++++-----
.../openejb/resource/AutoConnectionTracker.java | 4 +---
2 files changed, 12 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/dec53967/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java b/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
index 123c0ff..44e1256 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/dyni/DynamicSubclass.java
@@ -61,6 +61,10 @@ public class DynamicSubclass implements Opcodes {
}
public static Class createSubclass(final Class<?> abstractClass, final ClassLoader cl) {
+ return createSubclass(abstractClass, cl, false);
+ }
+
+ public static Class createSubclass(final Class<?> abstractClass, final ClassLoader cl, boolean proxyNonAbstractMethods) {
final String proxyName = getSubclassName(abstractClass);
try {
@@ -80,7 +84,7 @@ public class DynamicSubclass implements Opcodes {
// no-op
}
- return LocalBeanProxyFactory.Unsafe.defineClass(cl, abstractClass, proxyName, generateBytes(abstractClass));
+ return LocalBeanProxyFactory.Unsafe.defineClass(abstractClass, proxyName, generateBytes(abstractClass));
} catch (final Exception e) {
throw new InternalError(DynamicSubclass.class.getSimpleName() + ".createSubclass: " + Debug.printStackTrace(e));
@@ -96,14 +100,16 @@ public class DynamicSubclass implements Opcodes {
thisHandler.setAccessible(true);
}
thisHandler.set(instance, handler);
- } catch (final NoSuchFieldException | IllegalAccessException e) {
+ } catch (final NoSuchFieldException e) {
+ throw new IllegalArgumentException(e);
+ } catch (final IllegalAccessException e) {
throw new IllegalArgumentException(e);
}
}
- private static byte[] generateBytes(final Class<?> classToProxy) throws ProxyGenerationException {
+ private static byte[] generateBytes(final Class<?> classToProxy, final boolean proxyNonAbstractMethods) throws ProxyGenerationException {
- final Map<String, MethodVisitor> visitors = new HashMap<>();
+ final Map<String, MethodVisitor> visitors = new HashMap<String, MethodVisitor>();
final ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
@@ -134,7 +140,7 @@ public class DynamicSubclass implements Opcodes {
for (final Map.Entry<String, List<Method>> entry : methodMap.entrySet()) {
for (final Method method : entry.getValue()) {
- if (Modifier.isPublic(method.getModifiers())) {
+ if (Modifier.isAbstract(method.getModifiers()) || (proxyNonAbstractMethods && Modifier.isPublic(method.getModifiers()))) {
final MethodVisitor visitor = LocalBeanProxyFactory.visit(cw, method, proxyClassFileName, "this$handler");
visitors.put(method.getName() + Type.getMethodDescriptor(method), visitor);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/dec53967/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
index 7ec8ecb..125e37a 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/AutoConnectionTracker.java
@@ -23,8 +23,6 @@ import org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor;
import org.apache.geronimo.connector.outbound.ManagedConnectionInfo;
import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTracker;
import org.apache.openejb.dyni.DynamicSubclass;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.util.Logger;
import org.apache.openejb.util.proxy.LocalBeanProxyFactory;
import javax.resource.ResourceException;
@@ -157,7 +155,7 @@ public class AutoConnectionTracker implements ConnectionTracker {
synchronized (this) {
found = proxies.get(aClass);
if (found == null) {
- proxies.put(aClass, DynamicSubclass.createSubclass(aClass, loader));
+ proxies.put(aClass, DynamicSubclass.createSubclass(aClass, loader, true));
found = proxies.get(aClass);
}
}