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