Author: struberg
Date: Mon Jan 21 11:04:18 2013
New Revision: 1436270

URL: http://svn.apache.org/viewvc?rev=1436270&view=rev
Log:
OWB-344 throw deployment error when final class is intercepted/decorated

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

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=1436270&r1=1436269&r2=1436270&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
 Mon Jan 21 11:04:18 2013
@@ -187,6 +187,16 @@ public class InterceptorResolutionServic
 
         SelfInterceptorBean<T> selfInterceptorBean = 
resolveSelfInterceptorBean(annotatedType);
 
+        if (Modifier.isFinal(annotatedType.getJavaClass().getModifiers()) &&
+            (allUsedEjbInterceptors.size() > 0 || 
+             allUsedCdiInterceptors.size() > 0 || 
+             lifecycleMethodInterceptorInfos.size() > 0 ||
+             (decorators != null && decorators.size() > 0)))
+        {
+            throw new WebBeansConfigurationException("Cannot apply Decorators 
or Interceptors on a final class: " 
+                                                     + 
annotatedType.getJavaClass().getName());
+        }
+        
         return new BeanInterceptorInfo(decorators, allUsedEjbInterceptors, 
cdiInterceptors, selfInterceptorBean,
                                        businessMethodInterceptorInfos,
                                        nonInterceptedMethods, 
lifecycleMethodInterceptorInfos);


Reply via email to