You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/04/10 10:01:21 UTC
svn commit: r527052 -
/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/
Author: dblevins
Date: Tue Apr 10 01:01:20 2007
New Revision: 527052
URL: http://svn.apache.org/viewvc?view=rev&rev=527052
Log:
Proper handling of equals as per ejb3 spec
Modified:
incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java
incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java
incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java
incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatefulEJBObjectHandler.java
incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatelessEJBObjectHandler.java
Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java?view=diff&rev=527052&r1=527051&r2=527052
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBInvocationHandler.java Tue Apr 10 01:01:20 2007
@@ -30,9 +30,9 @@
public abstract class EJBInvocationHandler implements InvocationHandler, Serializable {
- protected static final Method EQUALS = getMethod(Object.class, "equals", null);
- protected static final Method HASHCODE = getMethod(Object.class, "hashCode", null);
- protected static final Method TOSTRING = getMethod(Object.class, "toString", null);
+ protected static final Method EQUALS = getMethod(Object.class, "equals", Object.class);
+ protected static final Method HASHCODE = getMethod(Object.class, "hashCode");
+ protected static final Method TOSTRING = getMethod(Object.class, "toString");
protected static final Hashtable<Object,HashSet> liveHandleRegistry = new Hashtable();
@@ -62,7 +62,7 @@
this.primaryKey = primaryKey;
}
- protected static Method getMethod(Class c, String method, Class[] params) {
+ protected static Method getMethod(Class c, String method, Class... params) {
try {
return c.getMethod(method, params);
} catch (NoSuchMethodException nse) {
Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java?view=diff&rev=527052&r1=527051&r2=527052
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBObjectHandler.java Tue Apr 10 01:01:20 2007
@@ -109,14 +109,14 @@
*/
try {
-
+ System.out.println("method = " + m.getDeclaringClass() + "."+m.getName());
String methodName = m.getName();
- if (m.getDeclaringClass() == Object.class) {
+ if (m.getDeclaringClass().equals(Object.class)) {
if (m.equals(TOSTRING)) {
return "proxy=" + this;
} else if (m.equals(EQUALS)) {
- return Boolean.FALSE;
+ return equals(m, a, p);
} else if (m.equals(HASHCODE)) {
return new Integer(this.hashCode());
@@ -164,7 +164,7 @@
invalidateReference();
throw new RemoteException("Container has suffered a SystemException", se.getCause());
} catch (Throwable oe) {
- throw new RemoteException("Unknown Container Exception", oe.getCause());
+ throw new RemoteException("Unknown Container Exception: "+oe.getClass().getName()+": "+oe.getMessage(), oe.getCause());
}
return retValue;
}
@@ -183,6 +183,8 @@
protected abstract Object getPrimaryKey(Method method, Object[] args, Object proxy) throws Throwable;
protected abstract Object isIdentical(Method method, Object[] args, Object proxy) throws Throwable;
+
+ protected abstract Object equals(Method method, Object[] args, Object proxy) throws Throwable;
protected abstract Object remove(Method method, Object[] args, Object proxy) throws Throwable;
Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java?view=diff&rev=527052&r1=527051&r2=527052
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBObjectHandler.java Tue Apr 10 01:01:20 2007
@@ -52,6 +52,10 @@
}
+ protected Object equals(Method method, Object[] args, Object proxy) throws Throwable {
+ return isIdentical(method, args, proxy);
+ }
+
protected Object remove(Method method, Object[] args, Object proxy) throws Throwable {
EJBRequest req = new EJBRequest(RequestMethodConstants.EJB_OBJECT_REMOVE);
Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatefulEJBObjectHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatefulEJBObjectHandler.java?view=diff&rev=527052&r1=527051&r2=527052
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatefulEJBObjectHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatefulEJBObjectHandler.java Tue Apr 10 01:01:20 2007
@@ -50,6 +50,10 @@
return new Boolean(this.primaryKey.equals(that.primaryKey));
}
+ protected Object equals(Method method, Object[] args, Object proxy) throws Throwable {
+ return isIdentical(method, args, proxy);
+ }
+
protected Object remove(Method method, Object[] args, Object proxy) throws Throwable {
EJBRequest req = new EJBRequest(RequestMethodConstants.EJB_OBJECT_REMOVE);
Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatelessEJBObjectHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatelessEJBObjectHandler.java?view=diff&rev=527052&r1=527051&r2=527052
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatelessEJBObjectHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/StatelessEJBObjectHandler.java Tue Apr 10 01:01:20 2007
@@ -53,7 +53,11 @@
if (arg == null || !(arg instanceof EJBObjectProxy)) return Boolean.FALSE;
EJBObjectProxy proxy2 = (EJBObjectProxy) arg;
EJBObjectHandler that = proxy2.getEJBObjectHandler();
- return new Boolean(this.ejb.deploymentID.equals(that.ejb.deploymentID));
+ return this.ejb.deploymentID.equals(that.ejb.deploymentID);
+ }
+
+ protected Object equals(Method method, Object[] args, Object proxy) throws Throwable {
+ return isIdentical(method, args, proxy);
}
protected Object remove(Method method, Object[] args, Object proxy) throws Throwable {