User: oberg
Date: 01/02/28 02:37:44
Modified: src/main/org/jboss/ejb/plugins/jrmp/interfaces
EntityProxy.java HomeProxy.java
StatefulSessionProxy.java
StatelessSessionProxy.java
Log:
Fixed exception marshaling
Revision Changes Path
1.22 +17 -3
jboss/src/main/org/jboss/ejb/plugins/jrmp/interfaces/EntityProxy.java
Index: EntityProxy.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jrmp/interfaces/EntityProxy.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- EntityProxy.java 2001/02/09 18:56:14 1.21
+++ EntityProxy.java 2001/02/28 10:37:43 1.22
@@ -23,7 +23,7 @@
* @see <related>
* @author Rickard �berg ([EMAIL PROTECTED])
* @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
-* @version $Revision: 1.21 $
+* @version $Revision: 1.22 $
*/
public class EntityProxy
extends GenericProxy
@@ -165,8 +165,22 @@
rmi.setPrincipal( getPrincipal() );
rmi.setCredential( getCredential() );
- // Invoke on the remote server, enforce marshalling
- return container.invoke(new MarshalledObject(rmi)).get();
+ // Invoke on the remote server, enforce marshaling
+ if (isLocal())
+ {
+ // We need to make sure marshaling of exceptions is done properly
+ try
+ {
+ return container.invoke(new MarshalledObject(rmi)).get();
+ } catch (Throwable e)
+ {
+ throw (Throwable)new MarshalledObject(e).get();
+ }
+ } else
+ {
+ // Marshaling is done by RMI
+ return container.invoke(new MarshalledObject(rmi)).get();
+ }
}
}
}
1.21 +33 -5
jboss/src/main/org/jboss/ejb/plugins/jrmp/interfaces/HomeProxy.java
Index: HomeProxy.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jrmp/interfaces/HomeProxy.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- HomeProxy.java 2001/02/09 18:56:15 1.20
+++ HomeProxy.java 2001/02/28 10:37:43 1.21
@@ -27,7 +27,7 @@
* @see <related>
* @author Rickard �berg ([EMAIL PROTECTED])
* @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
-* @version $Revision: 1.20 $
+* @version $Revision: 1.21 $
*/
public class HomeProxy
extends GenericProxy
@@ -182,8 +182,22 @@
rmi.setPrincipal( getPrincipal() );
rmi.setCredential( getCredential() );
- // Invoke on the remote server, enforce marshalling
- return container.invoke(new MarshalledObject(rmi));
+ // Invoke on the remote server, enforce marshaling
+ if (isLocal())
+ {
+ // We need to make sure marshaling of exceptions is done properly
+ try
+ {
+ return container.invoke(new MarshalledObject(rmi)).get();
+ } catch (Throwable e)
+ {
+ throw (Throwable)new MarshalledObject(e).get();
+ }
+ } else
+ {
+ // Marshaling is done by RMI
+ return container.invoke(new MarshalledObject(rmi)).get();
+ }
}
}
@@ -217,8 +231,22 @@
rmi.setPrincipal( getPrincipal() );
rmi.setCredential( getCredential() );
- // Invoke on the remote server, enforce marshalling
- return container.invokeHome(new MarshalledObject(rmi)).get();
+ // Invoke on the remote server, enforce marshaling
+ if (isLocal())
+ {
+ // We need to make sure marshaling of exceptions is done properly
+ try
+ {
+ return container.invokeHome(new MarshalledObject(rmi)).get();
+ } catch (Throwable e)
+ {
+ throw (Throwable)new MarshalledObject(e).get();
+ }
+ } else
+ {
+ // Marshaling is done by RMI
+ return container.invokeHome(new MarshalledObject(rmi)).get();
+ }
}
}
}
1.19 +21 -7
jboss/src/main/org/jboss/ejb/plugins/jrmp/interfaces/StatefulSessionProxy.java
Index: StatefulSessionProxy.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jrmp/interfaces/StatefulSessionProxy.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- StatefulSessionProxy.java 2001/02/09 18:56:15 1.18
+++ StatefulSessionProxy.java 2001/02/28 10:37:43 1.19
@@ -23,7 +23,7 @@
* @see <related>
* @author Rickard �berg ([EMAIL PROTECTED])
* @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
- * @version $Revision: 1.18 $
+ * @version $Revision: 1.19 $
*/
public class StatefulSessionProxy
extends GenericProxy
@@ -161,16 +161,30 @@
// Set the transaction context
rmi.setTransactionPropagationContext(getTransactionPropagationContext());
- // Set the security stuff
- // MF fixme this will need to use "thread local" and therefore same
construct as above
- // rmi.setPrincipal(sm != null? sm.getPrincipal() : null);
+ // Set the security stuff
+ // MF fixme this will need to use "thread local" and therefore same
construct as above
+ // rmi.setPrincipal(sm != null? sm.getPrincipal() : null);
// rmi.setCredential(sm != null? sm.getCredential() : null);
// is the credential thread local? (don't think so... but...)
- rmi.setPrincipal( getPrincipal() );
+ rmi.setPrincipal( getPrincipal() );
rmi.setCredential( getCredential() );
- // Invoke on the remote server, enforce marshalling
- return container.invoke(new MarshalledObject(rmi)).get();
+ // Invoke on the remote server, enforce marshaling
+ if (isLocal())
+ {
+ // We need to make sure marshaling of exceptions is done properly
+ try
+ {
+ return container.invoke(new MarshalledObject(rmi)).get();
+ } catch (Throwable e)
+ {
+ throw (Throwable)new MarshalledObject(e).get();
+ }
+ } else
+ {
+ // Marshaling is done by RMI
+ return container.invoke(new MarshalledObject(rmi)).get();
+ }
}
}
}
1.14 +17 -3
jboss/src/main/org/jboss/ejb/plugins/jrmp/interfaces/StatelessSessionProxy.java
Index: StatelessSessionProxy.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jrmp/interfaces/StatelessSessionProxy.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- StatelessSessionProxy.java 2001/02/09 18:56:15 1.13
+++ StatelessSessionProxy.java 2001/02/28 10:37:43 1.14
@@ -23,7 +23,7 @@
* @see <related>
* @author Rickard �berg ([EMAIL PROTECTED])
* @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
-* @version $Revision: 1.13 $
+* @version $Revision: 1.14 $
*/
public class StatelessSessionProxy
extends GenericProxy
@@ -171,8 +171,22 @@
rmi.setPrincipal( getPrincipal() );
rmi.setCredential( getCredential() );
- // Invoke on the remote server, enforce marshalling
- return container.invoke(new
MarshalledObject(rmi)).get();
+ // Invoke on the remote server, enforce marshaling
+ if (isLocal())
+ {
+ // We need to make sure marshaling of exceptions is
done properly
+ try
+ {
+ return container.invoke(new
MarshalledObject(rmi)).get();
+ } catch (Throwable e)
+ {
+ throw (Throwable)new MarshalledObject(e).get();
+ }
+ } else
+ {
+ // Marshaling is done by RMI
+ return container.invoke(new
MarshalledObject(rmi)).get();
+ }
}
}
}