You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by cr...@apache.org on 2003/08/31 23:50:53 UTC

cvs commit: jakarta-commons-sandbox/chain/src/test/org/apache/commons/chain/impl ExceptionFilter.java NonDelegatingFilter.java

craigmcc    2003/08/31 14:50:53

  Modified:    chain/src/java/org/apache/commons/chain Chain.java
                        Filter.java
               chain/src/java/org/apache/commons/chain/generic
                        LookupCommand.java
               chain/src/java/org/apache/commons/chain/impl
                        CatalogBase.java ChainBase.java
               chain/src/test/org/apache/commons/chain/impl
                        ExceptionFilter.java NonDelegatingFilter.java
  Log:
  Change signature of Filter.postprocess() to return a boolean that indicates
  an exception has been "handled" and therefore does not need to be rethrown
  at the end of the Filter's processing.
  
  Revision  Changes    Path
  1.2       +5 -4      jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/Chain.java
  
  Index: Chain.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/Chain.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Chain.java	11 Aug 2003 04:44:16 -0000	1.1
  +++ Chain.java	31 Aug 2003 21:50:53 -0000	1.2
  @@ -148,7 +148,8 @@
        *  {@link Chain}
        *
        * @exception Exception if thrown by one of the {@link Command}s
  -     *  in this {@link Chain}
  +     *  in this {@link Chain} but not handled by a <code>postprocess()</code>
  +     *  method of a {@link Filter}
        * @exception IllegalArgumentException if <code>context</code>
        *  is <code>null</code>
        *
  
  
  
  1.2       +9 -5      jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/Filter.java
  
  Index: Filter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/Filter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Filter.java	11 Aug 2003 04:44:17 -0000	1.1
  +++ Filter.java	31 Aug 2003 21:50:53 -0000	1.2
  @@ -103,8 +103,12 @@
        *
        * @exception IllegalArgumentException if <code>context</code>
        *  is <code>null</code>
  +     *
  +     * @return If a non-null <code>exception</code> was "handled" by this
  +     *  method (and therefore need not be rethrown), return <code>true</code>;
  +     *  otherwise return <code>false</code>
        */ 
  -   public void postprocess(Context context, Exception exception);
  +   public boolean postprocess(Context context, Exception exception);
   
   
   }
  
  
  
  1.2       +7 -6      jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/generic/LookupCommand.java
  
  Index: LookupCommand.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/generic/LookupCommand.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LookupCommand.java	11 Aug 2003 04:44:18 -0000	1.1
  +++ LookupCommand.java	31 Aug 2003 21:50:53 -0000	1.2
  @@ -226,14 +226,15 @@
       }
   
   
  -    public void postprocess(Context context, Exception exception) {
  +    public boolean postprocess(Context context, Exception exception) {
   
   	Command command = getCommand(context);
           if (command != null) {
               if (command instanceof Filter) {
  -                ((Filter) command).postprocess(context, exception);
  +                return (((Filter) command).postprocess(context, exception));
               }
           }
  +        return (false);
   
       }
   
  
  
  
  1.3       +5 -4      jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl/CatalogBase.java
  
  Index: CatalogBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl/CatalogBase.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CatalogBase.java	12 Aug 2003 20:33:24 -0000	1.2
  +++ CatalogBase.java	31 Aug 2003 21:50:53 -0000	1.3
  @@ -66,6 +66,7 @@
   import java.util.Iterator;
   import java.util.Map;
   import org.apache.commons.chain.Catalog;
  +import org.apache.commons.chain.Chain;
   import org.apache.commons.chain.Command;
   
   
  
  
  
  1.3       +13 -6     jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl/ChainBase.java
  
  Index: ChainBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/src/java/org/apache/commons/chain/impl/ChainBase.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ChainBase.java	12 Aug 2003 20:33:24 -0000	1.2
  +++ ChainBase.java	31 Aug 2003 21:50:53 -0000	1.3
  @@ -224,10 +224,17 @@
           if (i >= n) { // Fell off the end of the chain
               i--;
           }
  +        boolean handled = false;
  +        boolean result = false;
           for (int j = i; j >= 0; j--) {
               if (commands[j] instanceof Filter) {
                   try {
  -                    ((Filter) commands[j]).postprocess(context, saveException);
  +                    result =
  +                        ((Filter) commands[j]).postprocess(context,
  +                                                           saveException);
  +                    if (result) {
  +                        handled = true;
  +                    }
                   } catch (Exception e) {
                       ; // Silently ignore
                   }
  @@ -235,7 +242,7 @@
           }
   
           // Return the exception or result state from the last execute()
  -        if (saveException != null) {
  +        if ((saveException != null) && !handled) {
               throw saveException;
           } else {
               return (saveResult);
  
  
  
  1.3       +6 -5      jakarta-commons-sandbox/chain/src/test/org/apache/commons/chain/impl/ExceptionFilter.java
  
  Index: ExceptionFilter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/src/test/org/apache/commons/chain/impl/ExceptionFilter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ExceptionFilter.java	12 Aug 2003 20:33:25 -0000	1.2
  +++ ExceptionFilter.java	31 Aug 2003 21:50:53 -0000	1.3
  @@ -106,8 +106,9 @@
   
   
       // Postprocess command for this Filter
  -    public void postprocess(Context context, Exception exception) {
  +    public boolean postprocess(Context context, Exception exception) {
           log(context, id2);
  +        return (false);
       }
   
   
  
  
  
  1.3       +6 -5      jakarta-commons-sandbox/chain/src/test/org/apache/commons/chain/impl/NonDelegatingFilter.java
  
  Index: NonDelegatingFilter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/chain/src/test/org/apache/commons/chain/impl/NonDelegatingFilter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- NonDelegatingFilter.java	12 Aug 2003 20:33:25 -0000	1.2
  +++ NonDelegatingFilter.java	31 Aug 2003 21:50:53 -0000	1.3
  @@ -118,8 +118,9 @@
   
   
       // Postprocess method for this Filter
  -    public void postprocess(Context context, Exception exception) {
  +    public boolean postprocess(Context context, Exception exception) {
           log(context, id2);
  +        return (false);
       }