Author: struberg
Date: Fri May 26 19:28:25 2017
New Revision: 1796329

URL: http://svn.apache.org/viewvc?rev=1796329&view=rev
Log:
OWB-1182 allow interceptors to catch and retry the ctx.proceed()

Modified:
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java?rev=1796329&r1=1796328&r2=1796329&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java
 Fri May 26 19:28:25 2017
@@ -60,7 +60,18 @@ public class InterceptorInvocationContex
                 return proceed();
             }
 
-            return interceptor.intercept(type, instances.get(interceptor), 
this);
+            try
+            {
+                return interceptor.intercept(type, instances.get(interceptor), 
this);
+            }
+            catch (Exception e)
+            {
+                // restore the original location
+                // this allows for catching an Exception inside an Interceptor
+                // and then try to proceed with the interceptor chain again.
+                index--;
+                throw e;
+            }
         }
         else
         {


Reply via email to