Author: covener
Date: Fri Feb 15 16:21:11 2013
New Revision: 1446673

URL: http://svn.apache.org/r1446673
Log:
Merge r1446666 from 1.1.x

[OWB-771] keep InvocationContext#getTarget around during catch blocks of 
InvocationContext#proceed,
our InvocationContextImpl is very short-lived already.



Modified:
    openwebbeans/branches/owb_1.0.x/   (props changed)
    openwebbeans/branches/owb_1.0.x/webbeans-impl/   (props changed)
    
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java
    
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/beans/DependentScopedBean.java
    
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/common/DependentInterceptor.java
    
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/dependent/DependentInterceptorTest.java

Propchange: openwebbeans/branches/owb_1.0.x/
------------------------------------------------------------------------------
  Merged /openwebbeans/branches/owb_1.1.x:r1446666

Propchange: openwebbeans/branches/owb_1.0.x/webbeans-impl/
------------------------------------------------------------------------------
  Merged /openwebbeans/branches/owb_1.1.x/webbeans-impl:r1446666

Modified: 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java?rev=1446673&r1=1446672&r2=1446673&view=diff
==============================================================================
--- 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java
 (original)
+++ 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java
 Fri Feb 15 16:21:11 2013
@@ -183,8 +183,6 @@ public class InvocationContextImpl imple
         }
         catch (InvocationTargetException ite)
         {
-            this.target = null; // destroy target instance
-            
             // Try to provide the original exception to the interceptor stack, 
             // not the InvocationTargetException from Method.invoke
             Throwable t = ite.getCause();
@@ -196,8 +194,6 @@ public class InvocationContextImpl imple
         }
         catch (Exception e)
         {
-            this.target = null; // destroy target instance
-
             throw e;
         }
     }
@@ -496,4 +492,4 @@ public class InvocationContextImpl imple
     {
         this.ccKey = ccKey;
     }
-}
\ No newline at end of file
+}

Modified: 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/beans/DependentScopedBean.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/beans/DependentScopedBean.java?rev=1446673&r1=1446672&r2=1446673&view=diff
==============================================================================
--- 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/beans/DependentScopedBean.java
 (original)
+++ 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/beans/DependentScopedBean.java
 Fri Feb 15 16:21:11 2013
@@ -43,7 +43,13 @@ public class DependentScopedBean
     {
         SAY_HELLO = true;
     }
-    
+
+    @DependentInterceptorBindingType
+    public void throwException()
+    {
+        throw new RuntimeException("goodbye");
+    }
+ 
     @PostConstruct
     public void postConstruct()
     {

Modified: 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/common/DependentInterceptor.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/common/DependentInterceptor.java?rev=1446673&r1=1446672&r2=1446673&view=diff
==============================================================================
--- 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/common/DependentInterceptor.java
 (original)
+++ 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/common/DependentInterceptor.java
 Fri Feb 15 16:21:11 2013
@@ -30,6 +30,8 @@ public class DependentInterceptor
     public static boolean DEP_OK = false;
     
     public static int refCount = 0;
+
+    public static Class<?> exceptionTarget = null;
     
     public DependentInterceptor()
     {
@@ -41,6 +43,12 @@ public class DependentInterceptor
     {
         DEP_OK = true;
         
-        return ctx.proceed();
+        try {  
+            return ctx.proceed();
+        }
+        catch (Exception e) { 
+            exceptionTarget = ctx.getTarget().getClass();
+            throw e;
+        }
     }
 }

Modified: 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/dependent/DependentInterceptorTest.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/dependent/DependentInterceptorTest.java?rev=1446673&r1=1446672&r2=1446673&view=diff
==============================================================================
--- 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/dependent/DependentInterceptorTest.java
 (original)
+++ 
openwebbeans/branches/owb_1.0.x/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/dependent/DependentInterceptorTest.java
 Fri Feb 15 16:21:11 2013
@@ -77,6 +77,15 @@ public class DependentInterceptorTest ex
         Assert.assertTrue(DependentInterceptor.refCount == 1);
         
         Assert.assertTrue(DependentScopedBean.SAY_HELLO);
+
+        try { 
+            dbean.throwException();
+        }
+        catch (Exception e) { 
+            Assert.assertNotNull(DependentInterceptor.exceptionTarget);
+            
Assert.assertTrue(DependentInterceptor.exceptionTarget.equals(DependentScopedBean.class));
+        }
+            
                 
         bean.destroy(dbean, ctx);
         


Reply via email to