Hi Jeroen, Thanks a lot for your input, normally hot deployment works fine. My problem occurs only sometimes and can persist even after killing and starting tomcat again.
By the way: For issues with hot deployment I like VisualVM which ships with JDK and helped me a lot to identify thread groups/execution services/... that I started but not properly stopped on application undeploy. Regards Timothy -----Ursprüngliche Nachricht----- Von: Jeroen van der Wal [mailto:jer...@stromboli.it] Gesendet: Dienstag, 18. Oktober 2016 21:42 An: users Betreff: Re: Problems with startup since 1.13.0 Hi Timothy, I've had issues when hot-deploying wars and had to kill the process to so now we have a deployment script that stops the tomcat service, waits until the service has completely shut down, deploys and starts the service again. But you could argue it's a hack ;-) HTH Jeroen On 14 October 2016 at 16:42, Simecsek Timothy <timothy.simec...@nttdata.com> wrote: > Hey, > > Has anyone observed problems with running version 1.13.0? > > We upgraded a while ago and a bit after that we saw sometimes this > error when redeploying our application on tomcat: > 2016-10-14 14:29:21,690 [IsisWicketApplication http-nio-18080-exec-103 > ERROR] Failed to initialize > com.google.inject.ProvisionException: Unable to provision, see the > following errors: > > 1) Error in custom provider, java.util.ConcurrentModificationException > at org.apache.isis.core.runtime.runner.IsisInjectModule. > provideIsisSessionFactory(IsisInjectModule.java:109) > at org.apache.isis.core.runtime.runner.IsisInjectModule. > provideIsisSessionFactory(IsisInjectModule.java:109) > while locating org.apache.isis.core.runtime.system.session. > IsisSessionFactory > for field at org.apache.isis.viewer.wicket. > viewer.IsisWicketApplication.isisSessionFactory( > IsisWicketApplication.java:138) > while locating domainapp.webapp.A1FulfilllmentApplication > > 1 error > at com.google.inject.internal.Errors. > throwProvisionExceptionIfErrorsExist(Errors.java:482) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers( > MembersInjectorImpl.java:67) > at com.google.inject.internal.InjectorImpl.injectMembers( > InjectorImpl.java:984) > at org.apache.isis.viewer.wicket.viewer.IsisWicketApplication. > init(IsisWicketApplication.java:279) > at domainapp.webapp.A1FulfilllmentApplication.init( > A1FulfilllmentApplication.java:73) > at org.apache.wicket.Application.initApplication(Application. > java:823) > at org.apache.wicket.protocol.http.WicketFilter.init( > WicketFilter.java:427) > at org.apache.wicket.protocol.http.WicketFilter.init( > WicketFilter.java:351) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter( > ApplicationFilterConfig.java:279) > at org.apache.catalina.core.ApplicationFilterConfig.getFilter( > ApplicationFilterConfig.java:260) > at org.apache.catalina.core.ApplicationFilterConfig.<init> > (ApplicationFilterConfig.java:105) > at org.apache.catalina.core.StandardContext.filterStart( > StandardContext.java:4561) > at org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5204) > at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:152) > at org.apache.catalina.core.ContainerBase.addChildInternal( > ContainerBase.java:726) > at org.apache.catalina.core.ContainerBase.addChild( > ContainerBase.java:702) > at org.apache.catalina.core.StandardHost.addChild( > StandardHost.java:734) > at org.apache.catalina.startup.HostConfig.deployWAR( > HostConfig.java:952) > at org.apache.catalina.startup.HostConfig.deployApps( > HostConfig.java:473) > at org.apache.catalina.startup.HostConfig.check(HostConfig. > java:1617) > at sun.reflect.GeneratedMethodAccessor3189.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.tomcat.util.modeler.BaseModelMBean.invoke( > BaseModelMBean.java:300) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke( > DefaultMBeanServerInterceptor.java:819) > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke( > JmxMBeanServer.java:801) > at org.apache.catalina.manager.ManagerServlet.check( > ManagerServlet.java:1483) > at org.apache.catalina.manager.ManagerServlet.deploy( > ManagerServlet.java:731) > at org.apache.catalina.manager.ManagerServlet.doPut( > ManagerServlet.java:424) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:651) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > at org.apache.catalina.core.ApplicationFilterChain. > internalDoFilter(ApplicationFilterChain.java:230) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.tomcat.websocket.server.WsFilter.doFilter( > WsFilter.java:52) > at org.apache.catalina.core.ApplicationFilterChain. > internalDoFilter(ApplicationFilterChain.java:192) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.catalina.filters.SetCharacterEncodingFilter. > doFilter(SetCharacterEncodingFilter.java:108) > at org.apache.catalina.core.ApplicationFilterChain. > internalDoFilter(ApplicationFilterChain.java:192) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:198) > at org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:108) > at org.apache.catalina.authenticator.AuthenticatorBase.invoke( > AuthenticatorBase.java:632) > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java:140) > at org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java:79) > at org.apache.catalina.valves.AbstractAccessLogValve.invoke( > AbstractAccessLogValve.java:620) > at org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:87) > at org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java:349) > at org.apache.coyote.http11.Http11Processor.service( > Http11Processor.java:1110) > at org.apache.coyote.AbstractProcessorLight.process( > AbstractProcessorLight.java:66) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process( > AbstractProtocol.java:785) > at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. > doRun(NioEndpoint.java:1425) > at org.apache.tomcat.util.net.SocketProcessorBase.run( > SocketProcessorBase.java:52) > at java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( > TaskThread.java:61) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) > at java.util.HashMap$ValueIterator.next(HashMap.java:1466) > at java.util.Collections$UnmodifiableCollection$1.next( > Collections.java:1042) > at org.apache.isis.core.runtime.system.session.IsisSessionFactory. > constructServices(IsisSessionFactory.java:151) > at org.apache.isis.core.runtime.system.session. > IsisSessionFactoryBuilder.buildSessionFactory(IsisSessionFactoryBuilder. > java:204) > at org.apache.isis.core.runtime.runner.IsisInjectModule. > provideIsisSessionFactory(IsisInjectModule.java:118) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at com.google.inject.internal.ProviderMethod$ > ReflectionProviderMethod.doProvision(ProviderMethod.java:299) > at com.google.inject.internal.ProviderMethod.get( > ProviderMethod.java:172) > at > com.google.inject.internal.ProviderInternalFactory.provision( > ProviderInternalFactory.java:81) > at com.google.inject.internal.InternalFactoryToInitializable > Adapter.provision(InternalFactoryToInitializableAdapter.java:53) > at > com.google.inject.internal.ProviderInternalFactory.circularGet( > ProviderInternalFactory.java:61) > at com.google.inject.internal.InternalFactoryToInitializable > Adapter.get(InternalFactoryToInitializableAdapter.java:45) > at com.google.inject.internal.ProviderToInternalFactoryAdapt > er$1.call(ProviderToInternalFactoryAdapter.java:46) > at com.google.inject.internal.InjectorImpl.callInContext( > InjectorImpl.java:1103) > at com.google.inject.internal.ProviderToInternalFactoryAdapt > er.get(ProviderToInternalFactoryAdapter.java:40) > at com.google.inject.internal.SingletonScope$1.get( > SingletonScope.java:145) > at com.google.inject.internal.InternalFactoryToProviderAdapt > er.get(InternalFactoryToProviderAdapter.java:41) > at com.google.inject.internal.SingleFieldInjector.inject( > SingleFieldInjector.java:54) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers( > MembersInjectorImpl.java:132) > at com.google.inject.internal.MembersInjectorImpl$1.call( > MembersInjectorImpl.java:93) > at com.google.inject.internal.MembersInjectorImpl$1.call( > MembersInjectorImpl.java:80) > at com.google.inject.internal.InjectorImpl.callInContext( > InjectorImpl.java:1092) > at > com.google.inject.internal.MembersInjectorImpl.injectAndNotify( > MembersInjectorImpl.java:80) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers( > MembersInjectorImpl.java:62) > ... 54 more > 2016-10-14 14:29:21,703 [ThreadPoolSupport http-nio-18080-exec-103 INFO > ] join'ing 6 tasks: waited 1 milliseconds > 2016-10-14 14:29:21,703 [WicketFilter http-nio-18080-exec-103 > ERROR] The initialization of an application with name 'WicketFilter' > has failed. > com.google.inject.ProvisionException: Unable to provision, see the > following errors: > > 1) Error in custom provider, java.util.ConcurrentModificationException > at org.apache.isis.core.runtime.runner.IsisInjectModule. > provideIsisSessionFactory(IsisInjectModule.java:109) > at org.apache.isis.core.runtime.runner.IsisInjectModule. > provideIsisSessionFactory(IsisInjectModule.java:109) > while locating org.apache.isis.core.runtime.system.session. > IsisSessionFactory > for field at org.apache.isis.viewer.wicket. > viewer.IsisWicketApplication.isisSessionFactory( > IsisWicketApplication.java:138) > while locating domainapp.webapp.A1FulfilllmentApplication > > 1 error > at com.google.inject.internal.Errors. > throwProvisionExceptionIfErrorsExist(Errors.java:482) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers( > MembersInjectorImpl.java:67) > at com.google.inject.internal.InjectorImpl.injectMembers( > InjectorImpl.java:984) > at org.apache.isis.viewer.wicket.viewer.IsisWicketApplication. > init(IsisWicketApplication.java:279) > at domainapp.webapp.A1FulfilllmentApplication.init( > A1FulfilllmentApplication.java:73) > at org.apache.wicket.Application.initApplication(Application. > java:823) > at org.apache.wicket.protocol.http.WicketFilter.init( > WicketFilter.java:427) > at org.apache.wicket.protocol.http.WicketFilter.init( > WicketFilter.java:351) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter( > ApplicationFilterConfig.java:279) > at org.apache.catalina.core.ApplicationFilterConfig.getFilter( > ApplicationFilterConfig.java:260) > at org.apache.catalina.core.ApplicationFilterConfig.<init> > (ApplicationFilterConfig.java:105) > at org.apache.catalina.core.StandardContext.filterStart( > StandardContext.java:4561) > at org.apache.catalina.core.StandardContext.startInternal( > StandardContext.java:5204) > at org.apache.catalina.util.LifecycleBase.start( > LifecycleBase.java:152) > at org.apache.catalina.core.ContainerBase.addChildInternal( > ContainerBase.java:726) > at org.apache.catalina.core.ContainerBase.addChild( > ContainerBase.java:702) > at org.apache.catalina.core.StandardHost.addChild( > StandardHost.java:734) > at org.apache.catalina.startup.HostConfig.deployWAR( > HostConfig.java:952) > at org.apache.catalina.startup.HostConfig.deployApps( > HostConfig.java:473) > at org.apache.catalina.startup.HostConfig.check(HostConfig. > java:1617) > at sun.reflect.GeneratedMethodAccessor3189.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.tomcat.util.modeler.BaseModelMBean.invoke( > BaseModelMBean.java:300) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke( > DefaultMBeanServerInterceptor.java:819) > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke( > JmxMBeanServer.java:801) > at org.apache.catalina.manager.ManagerServlet.check( > ManagerServlet.java:1483) > at org.apache.catalina.manager.ManagerServlet.deploy( > ManagerServlet.java:731) > at org.apache.catalina.manager.ManagerServlet.doPut( > ManagerServlet.java:424) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:651) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > at org.apache.catalina.core.ApplicationFilterChain. > internalDoFilter(ApplicationFilterChain.java:230) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.tomcat.websocket.server.WsFilter.doFilter( > WsFilter.java:52) > at org.apache.catalina.core.ApplicationFilterChain. > internalDoFilter(ApplicationFilterChain.java:192) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.catalina.filters.SetCharacterEncodingFilter. > doFilter(SetCharacterEncodingFilter.java:108) > at org.apache.catalina.core.ApplicationFilterChain. > internalDoFilter(ApplicationFilterChain.java:192) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:165) > at org.apache.catalina.core.StandardWrapperValve.invoke( > StandardWrapperValve.java:198) > at org.apache.catalina.core.StandardContextValve.invoke( > StandardContextValve.java:108) > at org.apache.catalina.authenticator.AuthenticatorBase.invoke( > AuthenticatorBase.java:632) > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java:140) > at org.apache.catalina.valves.ErrorReportValve.invoke( > ErrorReportValve.java:79) > at org.apache.catalina.valves.AbstractAccessLogValve.invoke( > AbstractAccessLogValve.java:620) > at org.apache.catalina.core.StandardEngineValve.invoke( > StandardEngineValve.java:87) > at org.apache.catalina.connector.CoyoteAdapter.service( > CoyoteAdapter.java:349) > at org.apache.coyote.http11.Http11Processor.service( > Http11Processor.java:1110) > at org.apache.coyote.AbstractProcessorLight.process( > AbstractProcessorLight.java:66) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process( > AbstractProtocol.java:785) > at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor. > doRun(NioEndpoint.java:1425) > at org.apache.tomcat.util.net.SocketProcessorBase.run( > SocketProcessorBase.java:52) > at java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( > TaskThread.java:61) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) > at java.util.HashMap$ValueIterator.next(HashMap.java:1466) > at java.util.Collections$UnmodifiableCollection$1.next( > Collections.java:1042) > at org.apache.isis.core.runtime.system.session.IsisSessionFactory. > constructServices(IsisSessionFactory.java:151) > at org.apache.isis.core.runtime.system.session. > IsisSessionFactoryBuilder.buildSessionFactory(IsisSessionFactoryBuilder. > java:204) > at org.apache.isis.core.runtime.runner.IsisInjectModule. > provideIsisSessionFactory(IsisInjectModule.java:118) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at com.google.inject.internal.ProviderMethod$ > ReflectionProviderMethod.doProvision(ProviderMethod.java:299) > at com.google.inject.internal.ProviderMethod.get( > ProviderMethod.java:172) > at > com.google.inject.internal.ProviderInternalFactory.provision( > ProviderInternalFactory.java:81) > at com.google.inject.internal.InternalFactoryToInitializable > Adapter.provision(InternalFactoryToInitializableAdapter.java:53) > at > com.google.inject.internal.ProviderInternalFactory.circularGet( > ProviderInternalFactory.java:61) > at com.google.inject.internal.InternalFactoryToInitializable > Adapter.get(InternalFactoryToInitializableAdapter.java:45) > at com.google.inject.internal.ProviderToInternalFactoryAdapt > er$1.call(ProviderToInternalFactoryAdapter.java:46) > at com.google.inject.internal.InjectorImpl.callInContext( > InjectorImpl.java:1103) > at com.google.inject.internal.ProviderToInternalFactoryAdapt > er.get(ProviderToInternalFactoryAdapter.java:40) > at com.google.inject.internal.SingletonScope$1.get( > SingletonScope.java:145) > at com.google.inject.internal.InternalFactoryToProviderAdapt > er.get(InternalFactoryToProviderAdapter.java:41) > at com.google.inject.internal.SingleFieldInjector.inject( > SingleFieldInjector.java:54) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers( > MembersInjectorImpl.java:132) > at com.google.inject.internal.MembersInjectorImpl$1.call( > MembersInjectorImpl.java:93) > at com.google.inject.internal.MembersInjectorImpl$1.call( > MembersInjectorImpl.java:80) > at com.google.inject.internal.InjectorImpl.callInContext( > InjectorImpl.java:1092) > at > com.google.inject.internal.MembersInjectorImpl.injectAndNotify( > MembersInjectorImpl.java:80) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers( > MembersInjectorImpl.java:62) > ... 54 more > 2016-10-14 14:29:21,720 [Application http-nio-18080-exec-103 INFO > ] [WicketFilter] destroy: Wicket core library initializer > 2016-10-14 14:29:21,720 [Application http-nio-18080-exec-103 INFO > ] [WicketFilter] destroy: Wicket extensions initializer > > After this the application seems to shutdown, if I executed shutdown > command for tomcat it isn't successful and the process hangs, only > option is to kill it. Normally the shutdown command works perfectly! > Only option is to wait some time and suddenly it starts normally. > > > We observe a similar error sometimes during integration tests. The > only message is: > java.lang.RuntimeException: java.util.ConcurrentModificationException > Caused by: java.util.ConcurrentModificationException > And after that: > > java.lang.RuntimeException: > org.apache.isis.core.commons.exceptions.IsisException: > SessionFactory already set up > > Caused by: org.apache.isis.core.commons.exceptions.IsisException: > SessionFactory already set up > > Solution is to start the build again then it works most of the time. > > Has anyone an idea? > > Thanks & Regards Timothy > > ______________________________________________________________________ > Disclaimer: This email and any attachments are sent in strictest > confidence for the sole use of the addressee and may contain legally > privileged, confidential, and proprietary data. If you are not the > intended recipient, please advise the sender by replying promptly to > this email and then delete and destroy this email and any attachments > without any further use, copying or forwarding. ______________________________________________________________________ Disclaimer: This email and any attachments are sent in strictest confidence for the sole use of the addressee and may contain legally privileged, confidential, and proprietary data. If you are not the intended recipient, please advise the sender by replying promptly to this email and then delete and destroy this email and any attachments without any further use, copying or forwarding.