I don't have a patch, but I added a bunch more detail in Jira (https://ops4j1.jira.com/browse/PAXWEB-1077) that I think greatly narrows it down - I see what is going on that is causing the problem, but not exactly sure what the best solution is.
On Thursday, March 16, 2017 at 5:02:26 AM UTC-4, Achim Nierbeck wrote: > > Hi > > thanks for the details ... will look at it most likely around weekend. > > regards, Achim > > > 2017-03-16 2:50 GMT+01:00 Eben Stewart <[email protected] > <javascript:>>: > >> I'll add this to Jira, but I was trying to narrow this down even more.... >> >> In my own test code, I split it into 2 separate bundles - 1 containing >> the ServletContextHelper, the other containing the Servlet, both using >> DS/Whiteboard >> >> if I stop and start the servlet bundle only, I see this: >> >> g! stop 22 >> [Gogo shell] DEBUG TestCoreServlet.coreServlet - BundleEvent STOPPING - >> TestCoreServlet.coreServlet >> [Gogo shell] DEBUG TestCoreServlet.coreServlet - ServiceEvent >> UNREGISTERING - [javax.servlet.Servlet] - TestCoreServlet.coreServlet >> [Gogo shell] DEBUG >> org.ops4j.pax.web.extender.whiteboard.internal.tracker.AbstractTracker - >> Service removed [javax.servlet.Servlet] >> [Gogo shell] DEBUG org.ops4j.pax.web.extender.war.internal.Activator - >> Starting destruction process for bundle TestCoreServlet.coreServlet >> [Gogo shell] DEBUG org.ops4j.pax.web.extender.war.internal.Activator - >> Not an extended bundle or destruction of extension already finished for >> TestCoreServlet.coreServlet. >> [Gogo shell] DEBUG org.ops4j.pax.web.extender.war.internal.Activator - >> Starting destruction process for bundle TestCoreServlet.coreServlet >> [Gogo shell] DEBUG org.ops4j.pax.web.extender.war.internal.Activator - >> Not an extended bundle or destruction of extension already finished for >> TestCoreServlet.coreServlet. >> [Gogo shell] DEBUG TestCoreServlet.coreServlet - BundleEvent STOPPED - >> TestCoreServlet.coreServlet >> [Gogo shell] DEBUG org.ops4j.pax.web.extender.war.internal.Activator - >> Starting destruction process for bundle TestCoreServlet.coreServlet >> [Gogo shell] DEBUG org.ops4j.pax.web.extender.war.internal.Activator - >> Not an extended bundle or destruction of extension already finished for >> TestCoreServlet.coreServlet. >> g! start 22 >> [Gogo shell] DEBUG TestCoreServlet.coreServlet - BundleEvent STARTING - >> TestCoreServlet.coreServlet >> [Gogo shell] DEBUG TestCoreServlet.coreServlet - BundleEvent STARTED - >> TestCoreServlet.coreServlet >> [Gogo shell] DEBUG TestCoreServlet.coreServlet - ServiceEvent REGISTERED >> - [javax.servlet.Servlet] - TestCoreServlet.coreServlet >> [Gogo shell] DEBUG >> org.ops4j.pax.web.extender.whiteboard.internal.tracker.AbstractTracker - >> Service available [javax.servlet.Servlet] >> [Gogo shell] DEBUG >> org.ops4j.pax.web.extender.whiteboard.internal.tracker.ServletTracker - >> Creating web element for service 45 [javax.servlet.Servlet] >> (TestCore.Servlet.Example@9211a24). >> [Gogo shell] DEBUG >> org.ops4j.pax.web.extender.whiteboard.internal.WebApplication - >> de-registering 0 servlet filters >> [Gogo shell] DEBUG >> org.ops4j.pax.web.extender.whiteboard.internal.WebApplication - >> de-registering 0 welcomefilemappings >> [Gogo shell] DEBUG >> org.ops4j.pax.web.extender.whiteboard.internal.WebApplication - registering >> weblement:ServletWebElement{mapping=DefaultServletMapping{httpContextId=CustomContext,urlPatterns=[/web],initParams={},servlet=TestCore.Servlet.Example@9211a24, >> >> alias=null, servletNameExample1}} >> [Gogo shell] DEBUG org.ops4j.pax.web.service.internal.HttpServiceStarted >> - Using context >> [ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-2,name=context,httpContext=org.ops4j.pax.web.extender.whiteboard.internal.WebApplication$1@373185f1,contextParams={httpContext.shared=true, >> >> webapp.context=context},virtualHosts={},connectors={}}] >> [Gogo shell] DEBUG >> org.ops4j.pax.web.service.internal.ServletEventDispatcher - Sending web >> event ServletEvent [replay=false, type=1, >> bundle=21-TestCoreServlet.context, timestamp=1489628772443, alias=null, >> servletName=Example1, urlParameter=[Ljava.lang.String;@47984949, >> servletClass=TestCore.Servlet.Example], >> httpContext=org.ops4j.pax.web.extender.whiteboard.internal.WebApplication$1@373185f1] >> >> for bundle TestCoreServlet.context >> [ServletEventDispatcher: 3] DEBUG org.ops4j.pax.web.pax-web-jetty-bundle >> - org/osgi/service/web/DEPLOYING >> [ServletEventDispatcher: 2] DEBUG org.ops4j.pax.web.pax-web-runtime - >> org/osgi/service/web/DEPLOYING >> [Gogo shell] DEBUG >> org.ops4j.pax.web.service.jetty.internal.JettyServerImpl - Adding servlet >> [ServletModel{id=org.ops4j.pax.web.service.spi.model.ServletModel-4,name=Example1,urlPatterns=[/web],alias=null,servlet=TestCore.Servlet.Example@9211a24,initParams={},context=ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-2,name=context,httpContext=org.ops4j.pax.web.extender.whiteboard.internal.WebApplication$1@373185f1,contextParams={httpContext.shared=true, >> >> webapp.context=context},virtualHosts={},connectors={}}}] >> [Gogo shell] DEBUG org.eclipse.jetty.util.component.ContainerLifeCycle - >> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler@6e9175d8 >> added {Example1@77578027==TestCore.Servlet.Example,-1,true,UNMANAGED} >> [Gogo shell] DEBUG org.eclipse.jetty.util.component.ContainerLifeCycle - >> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler@6e9175d8 >> added {[/web]=>Example1,POJO} >> [Gogo shell] DEBUG >> org.ops4j.pax.web.service.internal.ServletEventDispatcher - Sending web >> event ServletEvent [replay=false, type=5, >> bundle=21-TestCoreServlet.context, timestamp=1489628772446, alias=null, >> servletName=Example1, urlParameter=[Ljava.lang.String;@53e3ff33, >> servletClass=TestCore.Servlet.Example], >> httpContext=org.ops4j.pax.web.extender.whiteboard.internal.WebApplication$1@373185f1] >> >> for bundle TestCoreServlet.context >> [ServletEventDispatcher: 1] DEBUG org.ops4j.pax.web.pax-web-jetty-bundle >> - org/osgi/service/web/FAILED >> [ServletEventDispatcher: 3] DEBUG org.ops4j.pax.web.pax-web-runtime - >> org/osgi/service/web/FAILED >> [Gogo shell] ERROR >> org.ops4j.pax.web.extender.whiteboard.internal.WebApplication - >> Registration skipped for >> [ServletWebElement{mapping=DefaultServletMapping{httpContextId=CustomContext,urlPatterns=[/web],initParams={},servlet=TestCore.Servlet.Example@9211a24, >> >> alias=null, servletNameExample1}}] due to error during registration >> java.lang.IllegalStateException: Multiple servlets map to path: /web: >> Example1,Example1 >> >> It looks like the WebElement is never destroyed and removed when stopping >> the Servlet Bundle - what makes this worse is that the WebElement *is >> still accessible* via the original web path >> >> if I just stop/start the Context bundle, this is where the original >> warning is coming from, after which, the context is no longer available: >> >> g! start 21 >> [Gogo shell] DEBUG TestCoreServlet.context - BundleEvent STARTING - >> TestCoreServlet.context >> [Gogo shell] DEBUG TestCoreServlet.context - BundleEvent STARTED - >> TestCoreServlet.context >> [Gogo shell] DEBUG TestCoreServlet.context - ServiceEvent REGISTERED - >> [org.osgi.service.http.context.ServletContextHelper] - >> TestCoreServlet.context >> [Gogo shell] DEBUG >> org.ops4j.pax.web.extender.whiteboard.internal.tracker.AbstractTracker - >> Service available [org.osgi.service.http.context.ServletContextHelper] >> [Gogo shell] DEBUG org.ops4j.pax.web.service.internal.HttpServiceProxy - >> Unregistering servlet [TestCore.Servlet.Example@66d3eec0] >> [Gogo shell] WARN org.ops4j.pax.web.service.internal.HttpServiceStopped - >> Http service has already been stopped >> [Gogo shell] WARN org.ops4j.pax.web.service.internal.HttpServiceStopped - >> Http service has already been stopped >> [Gogo shell] DEBUG org.ops4j.pax.web.service.internal.HttpServiceProxy - >> Setting context paramters [{httpContext.shared=true, >> webapp.context=context}] for http context >> [org.ops4j.pax.web.extender.whiteboard.internal.WebApplication$1@7cd8fcb5] >> [Gogo shell] WARN org.ops4j.pax.web.service.internal.HttpServiceStopped - >> Http service has already been stopped >> [Gogo shell] WARN org.ops4j.pax.web.service.internal.HttpServiceStopped - >> Http service has already been stopped >> >> >> >> >> On Wednesday, March 15, 2017 at 10:06:07 AM UTC-4, Eben Stewart wrote: >>> >>> I'd certainly like get to know the Pax code base better , but right now >>> I'm not even sure where to look :D >>> >>> On Wednesday, March 15, 2017 at 3:30:36 AM UTC-4, Achim Nierbeck wrote: >>>> >>>> Thanks for the jira ... will see when I have some time, >>>> through we really love contributions ;) >>>> >>>> regards, Achim >>>> >>>> >>>> 2017-03-15 1:19 GMT+01:00 Eben Stewart <[email protected]>: >>>> >>>>> https://ops4j1.jira.com/browse/PAXWEB-1077 >>>>> >>>>> >>>>> On Tuesday, March 14, 2017 at 8:10:16 PM UTC-4, Eben Stewart wrote: >>>>>> >>>>>> same thing - I'll open a Jira for it. >>>>>> >>>>>> Makes development really challenging every time you make a change to >>>>>> have to restart the whole framework :D >>>>>> >>>>>> >>>>>> >>>>>> On Tuesday, March 14, 2017 at 6:53:00 PM UTC-4, Achim Nierbeck wrote: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> in fact there is :-) >>>>>>> for a maven project it's >>>>>>> >>>>>>> <!-- OPS4J SNAPSHOT repository --> >>>>>>> <repository> >>>>>>> <id>ops4j.sonatype.snapshots.deploy</id> >>>>>>> <name>OPS4J snapshot repository</name> >>>>>>> <url> >>>>>>> https://oss.sonatype.org/content/repositories/ops4j-snapshots/</url> >>>>>>> <releases> >>>>>>> <enabled>false</enabled> >>>>>>> </releases> >>>>>>> <snapshots> >>>>>>> <enabled>true</enabled> >>>>>>> </snapshots> >>>>>>> </repository> >>>>>>> >>>>>>> regards, Achim >>>>>>> >>>>>>> 2017-03-14 21:53 GMT+01:00 Eben Stewart <[email protected]>: >>>>>>> >>>>>>>> thanks :) >>>>>>>> >>>>>>>> tested and recreated with 6.0.3-SNAPSHOT bundles >>>>>>>> >>>>>>>> However, I am getting build error for pax-web-jetty-bundle (all >>>>>>>> other artifacts built fine from a fresh git clone), so I can't be sure >>>>>>>> if >>>>>>>> the 6.0.2 version of that is valid to test with. Is there a compiled >>>>>>>> version of pax-web-jetty-bundle artifact available somewhere? >>>>>>>> >>>>>>>> I'll make sure to backtrack and do a fresh install of Karaf to get >>>>>>>> steps to recreate for Jira purposes >>>>>>>> >>>>>>>> On Tuesday, March 14, 2017 at 10:26:34 AM UTC-4, Achim Nierbeck >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> You should have received an invitation for jira. >>>>>>>>> Welcome aboard. >>>>>>>>> >>>>>>>>> regards, Achim >>>>>>>>> >>>>>>>>> >>>>>>>>> 2017-03-14 15:19 GMT+01:00 Eben Stewart <[email protected]>: >>>>>>>>> >>>>>>>>>> Will do. Do I need to make a separate request for Jira access? >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> -- >>>>>>>>>> ------------------ >>>>>>>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>>>>>>> >>>>>>>>>> --- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "OPS4J" group. >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>>> send an email to [email protected]. >>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> Apache Member >>>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >>>>>>>>> Committer & Project Lead >>>>>>>>> blog <http://notizblog.nierbeck.de/> >>>>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>>>>>>>> >>>>>>>>> Software Architect / Project Manager / Scrum Master >>>>>>>>> >>>>>>>>> -- >>>>>>>> -- >>>>>>>> ------------------ >>>>>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>>>>> >>>>>>>> --- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "OPS4J" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to [email protected]. >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Apache Member >>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >>>>>>> Committer & Project Lead >>>>>>> blog <http://notizblog.nierbeck.de/> >>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>>>>>> >>>>>>> Software Architect / Project Manager / Scrum Master >>>>>>> >>>>>>> -- >>>>> -- >>>>> ------------------ >>>>> OPS4J - http://www.ops4j.org - [email protected] >>>>> >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "OPS4J" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> >>>> Apache Member >>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >>>> Committer & Project Lead >>>> blog <http://notizblog.nierbeck.de/> >>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>>> >>>> Software Architect / Project Manager / Scrum Master >>>> >>>> -- >> -- >> ------------------ >> OPS4J - http://www.ops4j.org - [email protected] <javascript:> >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OPS4J" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > > Apache Member > Apache Karaf <http://karaf.apache.org/> Committer & PMC > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & > Project Lead > blog <http://notizblog.nierbeck.de/> > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> > > Software Architect / Project Manager / Scrum Master > > -- -- ------------------ OPS4J - http://www.ops4j.org - [email protected] --- You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
