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 <[email protected]> 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.
