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();
  +                             }
                        }
                }
        }
  
  
  

Reply via email to