adc         2004/02/16 09:51:02

  Modified:    modules/remoting/src/java/org/apache/geronimo/remoting
                        DeMarshalingInterceptor.java
                        MarshalingInterceptor.java
  Log:
  Proper separation of application and server exceptions.
  
  Revision  Changes    Path
  1.5       +5 -17     
incubator-geronimo/modules/remoting/src/java/org/apache/geronimo/remoting/DeMarshalingInterceptor.java
  
  Index: DeMarshalingInterceptor.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/remoting/src/java/org/apache/geronimo/remoting/DeMarshalingInterceptor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DeMarshalingInterceptor.java      15 Feb 2004 18:23:28 -0000      1.4
  +++ DeMarshalingInterceptor.java      16 Feb 2004 17:51:02 -0000      1.5
  @@ -79,13 +79,6 @@
           this.classloader = classloader;
       }
   
  -    public static class ThrowableWrapper implements Serializable {
  -        ThrowableWrapper(Throwable exception) {
  -            this.exception = exception;
  -        }
  -        public Throwable exception;
  -    }
  -
       /**
        * @return
        */
  @@ -112,21 +105,16 @@
                   marshalledInvocation = (Invocation) mo.get();
               } catch (Throwable e) {
                   // Could not deserialize the invocation...
  -                mo.set(new ThrowableWrapper(e));
  +                mo.set(e);
                   return new SimpleInvocationResult(false, mo);                
               }
   
               try {
                   InvocationResult rc = next.invoke(marshalledInvocation);
  -                if (rc.isNormal()) {
  -                    mo.set(rc.getResult());
  -                    return new SimpleInvocationResult(true, mo);
  -                } else {
  -                    mo.set(new ThrowableWrapper((Throwable)rc.getResult()));
  -                    return new SimpleInvocationResult(false, mo);
  -                }
  +                mo.set(rc);
  +                return new SimpleInvocationResult(true, mo);
               } catch (Throwable e) {
  -                mo.set(new ThrowableWrapper(e));
  +                mo.set(e);
                   return new SimpleInvocationResult(false, mo);
               }
   
  
  
  
  1.4       +6 -8      
incubator-geronimo/modules/remoting/src/java/org/apache/geronimo/remoting/MarshalingInterceptor.java
  
  Index: MarshalingInterceptor.java
  ===================================================================
  RCS file: 
/home/cvs/incubator-geronimo/modules/remoting/src/java/org/apache/geronimo/remoting/MarshalingInterceptor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MarshalingInterceptor.java        26 Nov 2003 20:54:28 -0000      1.3
  +++ MarshalingInterceptor.java        16 Feb 2004 17:51:02 -0000      1.4
  @@ -86,22 +86,20 @@
   
               // Demarshal the result.
               mo = (MarshalledObject) rc.getResult();
  -            Object result;
  +            InvocationResult result;
               try {
               
  -                result = mo.get();
  +                result = (InvocationResult)mo.get();
   
               } catch ( ClassNotFoundException e ) {      
                   // Weird.
                   
Thread.currentThread().setContextClassLoader(MarshalingInterceptor.class.getClassLoader());
  -                result = mo.get();
  +                result = (InvocationResult)mo.get();
               }
   
               // Are we demarshalling a thrown exception.
  -            if (result instanceof DeMarshalingInterceptor.ThrowableWrapper) {
  -                throw ((DeMarshalingInterceptor.ThrowableWrapper) 
result).exception;
  -            }
  -            return new SimpleInvocationResult(true, result);
  +            if (result.isException()) throw result.getException();
  +            return new SimpleInvocationResult(result.isNormal(), 
result.getResult());
               
           } finally {
               Thread.currentThread().setContextClassLoader(originalLoader);
  
  
  

Reply via email to