Author: arne
Date: Tue Jan 22 06:57:08 2013
New Revision: 1436766
URL: http://svn.apache.org/viewvc?rev=1436766&view=rev
Log:
OWB-344: Added validation for interceptors for beans without methods
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java?rev=1436766&r1=1436765&r2=1436766&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
Tue Jan 22 06:57:08 2013
@@ -205,7 +205,7 @@ public class BeansDeployer
}
catch(Exception e)
{
- logger.log(Level.SEVERE, e.getMessage(), e);
+// logger.log(Level.SEVERE, e.getMessage(), e);
WebBeansUtil.throwRuntimeExceptions(e);
}
}
@@ -401,7 +401,7 @@ public class BeansDeployer
}
- if(bean instanceof InjectionTargetBean && bean instanceof
InterceptedMarker)
+ if (bean instanceof InjectionTargetBean && bean instanceof
InterceptedMarker)
{
webBeansContext.getWebBeansInterceptorConfig().defineBeanInterceptorStack((InjectionTargetBean<Object>)
bean);
}
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java?rev=1436766&r1=1436765&r2=1436766&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java
Tue Jan 22 06:57:08 2013
@@ -122,7 +122,7 @@ public class InterceptorResolutionServic
List<Decorator<?>> decorators =
beanManager.resolveDecorators(beanTypes, AnnotationUtil.asArray(qualifiers));
if (decorators.size() == 0)
{
- decorators = null; // less to store
+ decorators = Collections.<Decorator<?>>emptyList(); // less to
store
}
// pick up CDI interceptors from a class level
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java?rev=1436766&r1=1436765&r2=1436766&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
Tue Jan 22 06:57:08 2013
@@ -67,11 +67,11 @@ public final class WebBeansInterceptorCo
*
* @param bean bean instance
*/
- public void defineBeanInterceptorStack(InjectionTargetBean<?> bean)
+ public <T> void defineBeanInterceptorStack(InjectionTargetBean<T> bean)
{
if (bean instanceof InterceptedMarker && bean.getInjectionTarget()
instanceof InjectionTargetImpl)
{
- InjectionTargetImpl<?> injectionTarget = (InjectionTargetImpl<?>)
bean.getInjectionTarget();
+ InjectionTargetImpl<T> injectionTarget = (InjectionTargetImpl<T>)
bean.getInjectionTarget();
BeanInterceptorInfo interceptorInfo =
webBeansContext.getInterceptorResolutionService().
calculateInterceptorInfo(bean.getTypes(),
bean.getQualifiers(), bean.getAnnotatedType());
@@ -121,6 +121,7 @@ public final class WebBeansInterceptorCo
List<Interceptor<?>> preDestroyInterceptors
=
getLifecycleInterceptors(interceptorInfo.getEjbInterceptors(),
interceptorInfo.getCdiInterceptors(), InterceptionType.PRE_DESTROY);
+ Class<? extends T> proxyClass = null;
if (methodInterceptors.size() > 0 ||
postConstructInterceptors.size() > 0 || preDestroyInterceptors.size() > 0)
{
// we only need to create a proxy class for intercepted or
decorated Beans
@@ -131,12 +132,12 @@ public final class WebBeansInterceptorCo
Method[] businessMethods =
methodInterceptors.keySet().toArray(new Method[methodInterceptors.size()]);
Method[] nonInterceptedMethods =
interceptorInfo.getNonInterceptedMethods().toArray(new
Method[interceptorInfo.getNonInterceptedMethods().size()]);
- Class proxyClass = pf.createProxyClass(classLoader,
bean.getReturnType(), businessMethods, nonInterceptedMethods);
+ proxyClass = pf.createProxyClass(classLoader,
bean.getReturnType(), businessMethods, nonInterceptedMethods);
// now we collect the post-construct and pre-destroy
interceptors
- injectionTarget.setInterceptorInfo(interceptorInfo,
proxyClass, methodInterceptors, postConstructInterceptors,
preDestroyInterceptors);
}
+ injectionTarget.setInterceptorInfo(interceptorInfo, proxyClass,
methodInterceptors, postConstructInterceptors, preDestroyInterceptors);
}
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java?rev=1436766&r1=1436765&r2=1436766&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java
Tue Jan 22 06:57:08 2013
@@ -170,7 +170,7 @@ public class InjectionTargetImpl<T> exte
{
T instance = newInstance((CreationalContextImpl<T>) creationalContext);
- if (interceptorInfo != null)
+ if (proxyClass != null)
{
// apply interceptorInfo
InterceptorDecoratorProxyFactory pf =
webBeansContext.getInterceptorDecoratorProxyFactory();
Modified:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java?rev=1436766&r1=1436765&r2=1436766&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java
Tue Jan 22 06:57:08 2013
@@ -85,7 +85,7 @@ public class InterceptorResolutionServic
Assert.assertNotNull(interceptorInfo.getCdiInterceptors());
Assert.assertEquals(1, interceptorInfo.getCdiInterceptors().size());
- Assert.assertNull(interceptorInfo.getDecorators());
+ Assert.assertEquals(0, interceptorInfo.getDecorators().size());
Map<Method, BusinessMethodInterceptorInfo> methodInterceptorInfos =
interceptorInfo.getBusinessMethodsInfo();
Assert.assertNotNull(methodInterceptorInfos);
@@ -157,7 +157,7 @@ public class InterceptorResolutionServic
Assert.assertNotNull(interceptorInfo.getCdiInterceptors());
Assert.assertEquals(3, interceptorInfo.getCdiInterceptors().size());
- Assert.assertNull(interceptorInfo.getDecorators());
+ Assert.assertEquals(0, interceptorInfo.getDecorators().size());
Map<Method, BusinessMethodInterceptorInfo> methodInterceptorInfos =
interceptorInfo.getBusinessMethodsInfo();
Assert.assertNotNull(methodInterceptorInfos);
@@ -201,7 +201,7 @@ public class InterceptorResolutionServic
Assert.assertNotNull(interceptorInfo.getCdiInterceptors());
Assert.assertEquals(2, interceptorInfo.getCdiInterceptors().size());
- Assert.assertNull(interceptorInfo.getDecorators());
+ Assert.assertEquals(0, interceptorInfo.getDecorators().size());
Map<Method, BusinessMethodInterceptorInfo> methodInterceptorInfos =
interceptorInfo.getBusinessMethodsInfo();
Assert.assertNotNull(methodInterceptorInfos);