[ 
https://issues.jboss.org/browse/WELD-996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12638526#comment-12638526
 ] 

Jozef Hartinger edited comment on WELD-996 at 10/31/11 9:00 AM:
----------------------------------------------------------------

My understanding is that if an extension-provided Interceptor implementation 
(e.g. CustomInterceptorImpl) is registered, Weld should recognize it to be 
passivation capable if and only if CustomInterceptorImpl implements the 
PassivationCapable interface. That should be the only indicator and we should 
not check if the underlying class, which CustomInterceptorImpl may be using, 
implements Serializable or not. Otherwise, that would go against the 
abstraction the SPI provides.
                
      was (Author: jharting):
    My understanding is that if an extension-provided Interceptor 
implementation (e.g. CustomInterceptorImpl) is registered, Weld should 
recognize it to be passivation capable if and only if CustomInterceptorImpl 
implements the PassivationCapable interface. That should be the only indicator 
and we should not check the underlying class CustomInterceptorImpl may be 
using. Otherwise, that would go against the abstraction the SPI provides.
                  
> ClassCastException validating custom Interceptor implementation
> ---------------------------------------------------------------
>
>                 Key: WELD-996
>                 URL: https://issues.jboss.org/browse/WELD-996
>             Project: Weld
>          Issue Type: Bug
>    Affects Versions: 1.1.2.Final
>            Reporter: Jozef Hartinger
>            Assignee: Jozef Hartinger
>            Priority: Critical
>             Fix For: 1.2.0.Beta1
>
>
> Having a custom implementation of the Interceptor interface registered with 
> Weld, the validation always fails if the interceptor happens to intercept a 
> passivation capable bean. Weld incorrectly casts the interceptor to 
> InterceptorImpl which is not valid for extension-provided interceptors.
> {noformat}
> java.lang.ClassCastException: 
> org.jboss.seam.classic.intercept.ClassicInterceptor cannot be cast to 
> org.jboss.weld.bean.InterceptorImpl
>         at org.jboss.as.weld.services.WeldService.start(WeldService.java:96)
>         at 
> org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
>  [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
>         at 
> org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
>  [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  [:1.6.0_24]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>  [:1.6.0_24]
>         at java.lang.Thread.run(Thread.java:662) [:1.6.0_24]
> Caused by: java.lang.ClassCastException: 
> org.jboss.seam.classic.intercept.ClassicInterceptor cannot be cast to 
> org.jboss.weld.bean.InterceptorImpl
>         at 
> org.jboss.weld.bootstrap.Validator.validateInterceptors(Validator.java:171)
>         at 
> org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:151)
>         at 
> org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:351)
>         at 
> org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:336)
>         at 
> org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:404)
>         at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82)
>         at org.jboss.as.weld.services.WeldService.start(WeldService.java:89)
>         ... 5 more
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to