Author: bergmark
Date: Wed Apr  6 20:57:35 2011
New Revision: 1089622

URL: http://svn.apache.org/viewvc?rev=1089622&view=rev
Log:
[OWB-554] Allow bean thrown exceptions to propagate up the call stack from 
DelegateHandler

Modified:
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java?rev=1089622&r1=1089621&r2=1089622&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
 Wed Apr  6 20:57:35 2011
@@ -113,15 +113,27 @@ public class DelegateHandler implements 
             }
             catch (InvocationTargetException e)
             {
+                Throwable cause = e.getCause();
                 //If the wrapped exception tells us the method didn't exist, 
continue
-                if(e.getCause() instanceof NoSuchMethodException)
+                if(cause instanceof NoSuchMethodException)
                 {
                     continue;
                 }
                 
                 logger.error(OWBLogConst.ERROR_0012, e.getTargetException(), 
method.getName(), decorator.getClass().getName());
 
-                throw new WebBeansException(e);
+                if (cause instanceof Exception)
+                {
+                    throw (Exception) cause;
+                }
+                else if (cause instanceof Error)
+                {
+                    throw (Error) cause;
+                }
+                else
+                {
+                    throw new WebBeansException(e);
+                }
             }
             catch (IllegalAccessException e)
             {


Reply via email to