Repository: tomee Updated Branches: refs/heads/master 76f21e2b3 -> a47eb2575
fixing BaseEjbProxyHandler#equals regression handling local beans Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/a47eb257 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/a47eb257 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/a47eb257 Branch: refs/heads/master Commit: a47eb2575d716ca96b1cc9f58bd0c5cd7bef037a Parents: 76f21e2 Author: Romain Manni-Bucau <rmannibu...@apache.org> Authored: Tue Mar 24 11:15:44 2015 +0100 Committer: Romain Manni-Bucau <rmannibu...@apache.org> Committed: Tue Mar 24 11:15:44 2015 +0100 ---------------------------------------------------------------------- .../openejb/core/ivm/BaseEjbProxyHandler.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/a47eb257/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java index 7f54ca1..e632778 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java @@ -27,7 +27,7 @@ import org.apache.openejb.core.ThreadContext; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.spi.ContainerSystem; import org.apache.openejb.spi.SecurityService; -import org.apache.openejb.util.proxy.ProxyManager; +import org.apache.openejb.util.proxy.LocalBeanProxyFactory; import javax.ejb.AccessLocalException; import javax.ejb.EJBException; @@ -495,17 +495,16 @@ public abstract class BaseEjbProxyHandler implements InvocationHandler, Serializ return true; } if (!BaseEjbProxyHandler.class.isInstance(obj)) { - if (!Proxy.isProxyClass(obj.getClass())) { - return false; - } - try { - obj = ProxyManager.getInvocationHandler(obj); - } catch (final IllegalArgumentException e) { + final Class<?> aClass = obj.getClass(); + if (Proxy.isProxyClass(aClass)) { + obj = Proxy.getInvocationHandler(obj); + } else if (LocalBeanProxyFactory.isProxy(aClass)) { + obj = LocalBeanProxyFactory.getInvocationHandler(obj); + } else { return false; } } - final BaseEjbProxyHandler other = (BaseEjbProxyHandler) obj; - return equalHandler(other); + return equalHandler(BaseEjbProxyHandler.class.cast(obj)); } protected boolean equalHandler(final BaseEjbProxyHandler other) {