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


Reply via email to