[ 
https://issues.apache.org/jira/browse/FELIX-6745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17907398#comment-17907398
 ] 

Carsten Ziegeler commented on FELIX-6745:
-----------------------------------------

It seems HttpServiceServletHandler is too smart - it is not wrapping if the 
passed in servlet is already wrapper - but then on unregister it assumes it got 
wrapped. I think HttpServiceServletHandler should always wrap

> HttpService: Cannot unregister javaxwrappers.ServletWrapper
> -----------------------------------------------------------
>
>                 Key: FELIX-6745
>                 URL: https://issues.apache.org/jira/browse/FELIX-6745
>             Project: Felix
>          Issue Type: Bug
>          Components: HTTP Service
>    Affects Versions: http.jetty12-1.0.19
>            Reporter: Andreas Lemmer
>            Priority: Critical
>
> When (manually) registering an 
> {{org.apache.felix.http.javaxwrappers.ServletWrapper}} servlet at 
> {{org.osgi.service.http.HttpService}}, it cannot be unregistered anymore:
> {{java.lang.ClassCastException: class (WrappedServlet) cannot be cast to 
> class org.apache.felix.http.jakartawrappers.ServletWrapper}}
> {{at 
> org.apache.felix.http.base.internal.service.SharedHttpServiceImpl.getServlet(SharedHttpServiceImpl.java:117)}}
> {{at 
> org.apache.felix.http.base.internal.service.SharedHttpServiceImpl.unregister(SharedHttpServiceImpl.java:100)}}
> This is because registering the ServletWrapper actually registers the wrapped 
> servlet (see 
> {{org.apache.felix.http.jakartawrappers.ServletWrapper#getRegisteredServlet)}},
>  but unregistering assumes that the registered servlet is an 
> {{org.apache.felix.http.jakartawrappers.ServletWrapper}} (see 
> {{org.apache.felix.http.base.internal.service#getServlet}} where the CCE 
> happens).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to