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/01/20 06:18:19 UTC

svn commit: r498072 - in /incubator/openejb/trunk/openejb3/server: openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java

Author: dblevins
Date: Fri Jan 19 21:18:17 2007
New Revision: 498072

URL: http://svn.apache.org/viewvc?view=rev&rev=498072
Log:
Check if the throwable is not a ThrowableArtifact, if it isn't then wrap it.

Modified:
    incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
    incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java

Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java?view=diff&rev=498072&r1=498071&r2=498072
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EJBResponse.java Fri Jan 19 21:18:17 2007
@@ -94,6 +94,16 @@
     public void writeExternal(ObjectOutput out) throws IOException {
 
         out.writeByte(responseCode);
+
+        switch (responseCode) {
+            case ResponseCodes.EJB_APP_EXCEPTION:
+            case ResponseCodes.EJB_ERROR:
+            case ResponseCodes.EJB_SYS_EXCEPTION:
+                if (result instanceof Throwable && !(result instanceof ThrowableArtifact)) {
+                    Throwable throwable = (Throwable) result;
+                    result = new ThrowableArtifact(throwable);
+                }
+        }
         out.writeObject(result);
     }
 }

Modified: incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java?view=diff&rev=498072&r1=498071&r2=498072
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java Fri Jan 19 21:18:17 2007
@@ -259,7 +259,7 @@
 
             result = new RemoteException("The bean is not EJB compliant.  The bean should be created or and exception should be thrown.");
             this.daemon.logger.error(req + "The bean is not EJB compliant.  The bean should be created or and exception should be thrown.");
-            res.setResponse(ResponseCodes.EJB_SYS_EXCEPTION, result);
+            res.setResponse(ResponseCodes.EJB_SYS_EXCEPTION, new ThrowableArtifact((Throwable) result));
         }
     }
 
@@ -387,7 +387,7 @@
             res.setResponse(ResponseCodes.EJB_OK, null);
         } else {
             this.daemon.logger.info(req + "Unauthorized Access by Principal Denied");
-            res.setResponse(ResponseCodes.EJB_APP_EXCEPTION, new RemoteException("Unauthorized Access by Principal Denied"));
+            res.setResponse(ResponseCodes.EJB_APP_EXCEPTION, new ThrowableArtifact(new RemoteException("Unauthorized Access by Principal Denied")));
         }
     }