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