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);