You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2010/02/19 19:53:13 UTC

svn commit: r911909 - in /tapestry/tapestry5/trunk: tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/

Author: hlship
Date: Fri Feb 19 18:53:12 2010
New Revision: 911909

URL: http://svn.apache.org/viewvc?rev=911909&view=rev
Log:
Add rethrow() to Invocation, which will check for a thrown (checked) exception and re-throw it wrapped inside a RuntimeException

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AbstractComponentMethodInvocation.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/Invocation.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AbstractInvocation.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AbstractComponentMethodInvocation.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AbstractComponentMethodInvocation.java?rev=911909&r1=911908&r2=911909&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AbstractComponentMethodInvocation.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AbstractComponentMethodInvocation.java Fri Feb 19 18:53:12 2010
@@ -96,6 +96,12 @@
         return thrown != null;
     }
 
+    public void rethrow()
+    {
+        if (thrown != null)
+            throw new RuntimeException(thrown);
+    }
+
     public <T extends Throwable> T getThrown(Class<T> throwableClass)
     {
         if (throwableClass.isInstance(thrown))
@@ -116,8 +122,8 @@
         }
 
         throw new IllegalArgumentException(String.format(
-                "Exception class %s is not a declared exception type for method %s().", thrown
-                        .getClass(), info.getMethodName()));
+                "Exception class %s is not a declared exception type for method %s().", thrown.getClass(), info
+                        .getMethodName()));
     }
 
     public Object getResult()
@@ -131,11 +137,9 @@
         {
             Class expectedType = info.getEffectiveResultType();
 
-            if (!expectedType.isInstance(newResult)) { throw new IllegalArgumentException(
-                    String
-                            .format(
-                                    "Invalid result value (%s) does not match return type %s for method %s.",
-                                    newResult, expectedType.getName(), info.getMethodName())); }
+            if (!expectedType.isInstance(newResult)) { throw new IllegalArgumentException(String.format(
+                    "Invalid result value (%s) does not match return type %s for method %s.", newResult, expectedType
+                            .getName(), info.getMethodName())); }
         }
 
         result = newResult;

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/Invocation.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/Invocation.java?rev=911909&r1=911908&r2=911909&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/Invocation.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/Invocation.java Fri Feb 19 18:53:12 2010
@@ -4,7 +4,7 @@
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -47,14 +47,16 @@
 
     /**
      * Replaces a parameter in the invocation.
-     *
-     * @param index        of parameter to update
-     * @param newParameter new parameter value (may be null)
+     * 
+     * @param index
+     *            of parameter to update
+     * @param newParameter
+     *            new parameter value (may be null)
      */
     void override(int index, Object newParameter);
 
     /**
-     * Proceed with the invocation of the advised method.  If the invocation results in a <em>runtime</em> exception,
+     * Proceed with the invocation of the advised method. If the invocation results in a <em>runtime</em> exception,
      * that is thrown. A checked exception is detected by invoking {@link #isFail()}.
      */
     void proceed();
@@ -65,21 +67,31 @@
     boolean isFail();
 
     /**
+     * If the invocation failed (with a checked exception), then rethrow the exception wrapped in a
+     * RuntimeException.
+     * 
+     * @since 5.2.0
+     */
+    void rethrow();
+
+    /**
      * After invoking {@link #proceed()}, used to obtain the thrown (checked) exception, if assignable to the provided
      * type.
-     *
-     * @param throwableClass the type of exception to match
+     * 
+     * @param throwableClass
+     *            the type of exception to match
      * @return the exception, if the proceeded invocation threw a checked exception, and the exception is assignable to
-     *         the provided type.  In other cases, null is returned.
+     *         the provided type. In other cases, null is returned.
      */
     <T extends Throwable> T getThrown(Class<T> throwableClass);
 
     /**
      * Overrides the thrown exception. The passed exception should be a checked exception of the method. Note that for
      * runtime exceptions, or even {@link Error}s, those can just be thrown. Sets the fail flag.
-     *
+     * 
      * @param thrown
-     * @throws IllegalArgumentException if thrown is null, or not a declared exception of the method
+     * @throws IllegalArgumentException
+     *             if thrown is null, or not a declared exception of the method
      */
     void overrideThrown(Exception thrown);
 

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AbstractInvocation.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AbstractInvocation.java?rev=911909&r1=911908&r2=911909&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AbstractInvocation.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AbstractInvocation.java Fri Feb 19 18:53:12 2010
@@ -4,7 +4,7 @@
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -73,11 +73,18 @@
         return thrown != null;
     }
 
+    public void rethrow()
+    {
+        if (thrown != null)
+            throw new RuntimeException(thrown);
+    }
+
     public <T extends Throwable> T getThrown(Class<T> throwableClass)
     {
         Defense.notNull(throwableClass, "throwableClass");
 
-        if (throwableClass.isInstance(thrown)) return throwableClass.cast(thrown);
+        if (throwableClass.isInstance(thrown))
+            return throwableClass.cast(thrown);
 
         return null;
     }
@@ -96,7 +103,7 @@
         }
 
         throw new IllegalArgumentException(String.format("Exception %s is not a declared exception of method %s.",
-                                                         thrown.getClass().getName(), method));
+                thrown.getClass().getName(), method));
     }
 
     public Object getResult()