You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/03/20 14:15:50 UTC

[2/3] tomee git commit: TOMEE-1529 BaseEjbProxyHandler#equals is super slow when parameter is not a proxy

TOMEE-1529 BaseEjbProxyHandler#equals is super slow when parameter is not a proxy


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/889c648c
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/889c648c
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/889c648c

Branch: refs/heads/master
Commit: 889c648c5d2cb8ce8571841bdf7883b17b845f54
Parents: 83901fe
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Fri Mar 20 14:15:40 2015 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Fri Mar 20 14:15:40 2015 +0100

----------------------------------------------------------------------
 .../org/apache/openejb/core/ivm/BaseEjbProxyHandler.java  | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/889c648c/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 ad48cee..7f54ca1 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
@@ -50,6 +50,7 @@ import java.io.Serializable;
 import java.lang.ref.WeakReference;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
 import java.math.BigDecimal;
 import java.rmi.AccessException;
 import java.rmi.NoSuchObjectException;
@@ -490,16 +491,19 @@ public abstract class BaseEjbProxyHandler implements InvocationHandler, Serializ
         if (obj == null) {
             return false;
         }
+        if (this == obj) {
+            return true;
+        }
         if (!BaseEjbProxyHandler.class.isInstance(obj)) {
+            if (!Proxy.isProxyClass(obj.getClass())) {
+                return false;
+            }
             try {
                 obj = ProxyManager.getInvocationHandler(obj);
             } catch (final IllegalArgumentException e) {
                 return false;
             }
         }
-        if (this == obj) {
-            return true;
-        }
         final BaseEjbProxyHandler other = (BaseEjbProxyHandler) obj;
         return equalHandler(other);
     }