[jira] [Commented] (ISIS-1964) ConcurrentModificationException when stating application
[ https://issues.apache.org/jira/browse/ISIS-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16519690#comment-16519690 ] Andi Huber commented on ISIS-1964: -- Thanks Vladimir, I do have difficulties to understand, how (possibly) different threads do get involved with your application bootstrapping, without having a full picture of what is going on in your environment. Anyway, reading your comment, if it is the case, that your entire Isis bootstrapping is dependent on another thread to complete some initialization work, you could consider using following fact about javax.servlet.Filter: The filters are always initialized during webapp's startup in the order as they are defined in the web.xml. [1] You can place another custom filter into your web.xml, that has higher priority than the WicketFilter, such that it can finish any initialization before Isis gets bootstrapped. {code:xml} WicketFilter org.apache.wicket.protocol.http.WicketFilter applicationClassName domainapp.webapp.HelloWorldApplication WicketFilter /wicket/* {code} [1] [https://stackoverflow.com/questions/2906344/servlet-init-and-filter-init-call-sequence] > ConcurrentModificationException when stating application > > > Key: ISIS-1964 > URL: https://issues.apache.org/jira/browse/ISIS-1964 > Project: Isis > Issue Type: Bug > Components: Core >Affects Versions: 1.16.2 >Reporter: Vladimir Nisevic >Priority: Major > Fix For: 1.16.3 > > > Hi Dan, meanwhile we are using 1.16.2 and observe still (more rarely) this > exception during startup. > > {code:java} > 018-06-20 15:10:47.546 [localhost-startStop-1] init ERROR > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication - Failed to > initialize > com.google.inject.ProvisionException: Unable to provision, see the following > errors: > 1) Error in custom provider, java.lang.RuntimeException: An error occurred > while executing code in a temporary session > 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:155) > while locating at.a1ta.cll.webapp.CllWebApplication > 1 error > at > com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:486) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67) > at > com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987) > at > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:368) > at at.a1ta.cll.webapp.CllWebApplication.init(CllWebApplication.java:32) > at org.apache.wicket.Application.initApplication(Application.java:953) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:353) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266) > at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4590) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5233) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629) > at > org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.RuntimeException: An error occurred while executing code > in a temporary session > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:366) > at >
[jira] [Commented] (ISIS-1964) ConcurrentModificationException when stating application
[ https://issues.apache.org/jira/browse/ISIS-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16519657#comment-16519657 ] Vladimir Nisevic commented on ISIS-1964: Hi, we are using latest Sun JDK 8 on RedHat Linux with latest Tomcat8. We restart tomcat after each redeployment. Meanwhile it happens not no often. Some of our domain services register in their postConstruct method to an callback of an additional thread which takes care that database is really available since this domain domain service needs database to read specific app settings in order to initialize themselve properly. That was an issue in previous Isis versions so we solved on that way. That means that some of our domain services spend some time in postConstruct method waiting and then continue. But we do not touch Isis bootstrapping at all. Regs Vladimir > ConcurrentModificationException when stating application > > > Key: ISIS-1964 > URL: https://issues.apache.org/jira/browse/ISIS-1964 > Project: Isis > Issue Type: Bug > Components: Core >Affects Versions: 1.16.2 >Reporter: Vladimir Nisevic >Priority: Major > Fix For: 1.16.3 > > > Hi Dan, meanwhile we are using 1.16.2 and observe still (more rarely) this > exception during startup. > > {code:java} > 018-06-20 15:10:47.546 [localhost-startStop-1] init ERROR > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication - Failed to > initialize > com.google.inject.ProvisionException: Unable to provision, see the following > errors: > 1) Error in custom provider, java.lang.RuntimeException: An error occurred > while executing code in a temporary session > 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:155) > while locating at.a1ta.cll.webapp.CllWebApplication > 1 error > at > com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:486) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67) > at > com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987) > at > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:368) > at at.a1ta.cll.webapp.CllWebApplication.init(CllWebApplication.java:32) > at org.apache.wicket.Application.initApplication(Application.java:953) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:353) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266) > at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4590) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5233) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629) > at > org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.RuntimeException: An error occurred while executing code > in a temporary session > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:366) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:330) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:317) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder.buildSessionFactory(IsisSessionFactoryBuilder.java:211) > at >
[jira] [Commented] (ISIS-1964) ConcurrentModificationException when stating application
[ https://issues.apache.org/jira/browse/ISIS-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16519394#comment-16519394 ] Andi Huber commented on ISIS-1964: -- Hi Vladimir, can you give us a short description on what kind of java runtime environment you are encountering this issue? Do you have multiple instances of Apache Isis running within the same servlet container or jvm? Does this happen only on application redeployment or on a servlet container fresh-start as well? Cheers, Andi > ConcurrentModificationException when stating application > > > Key: ISIS-1964 > URL: https://issues.apache.org/jira/browse/ISIS-1964 > Project: Isis > Issue Type: Bug > Components: Core >Affects Versions: 1.16.2 >Reporter: Vladimir Nisevic >Priority: Major > Fix For: 1.16.3 > > > Hi Dan, meanwhile we are using 1.16.2 and observe still (more rarely) this > exception during startup. > > {code:java} > 018-06-20 15:10:47.546 [localhost-startStop-1] init ERROR > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication - Failed to > initialize > com.google.inject.ProvisionException: Unable to provision, see the following > errors: > 1) Error in custom provider, java.lang.RuntimeException: An error occurred > while executing code in a temporary session > 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:155) > while locating at.a1ta.cll.webapp.CllWebApplication > 1 error > at > com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:486) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67) > at > com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987) > at > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:368) > at at.a1ta.cll.webapp.CllWebApplication.init(CllWebApplication.java:32) > at org.apache.wicket.Application.initApplication(Application.java:953) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:353) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266) > at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4590) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5233) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629) > at > org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.RuntimeException: An error occurred while executing code > in a temporary session > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:366) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:330) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:317) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder.buildSessionFactory(IsisSessionFactoryBuilder.java:211) > at > org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSessionFactory(IsisInjectModule.java:118) > at > org.apache.isis.core.runtime.runner.IsisInjectModule$$FastClassByGuice$$a813f90e.invoke() > at > com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:264) > at > com.google.inject.internal.ProviderMethod$Factory.provision(ProviderMethod.java:401) > at >
[jira] [Comment Edited] (ISIS-1964) ConcurrentModificationException when stating application
[ https://issues.apache.org/jira/browse/ISIS-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16519372#comment-16519372 ] Andi Huber edited comment on ISIS-1964 at 6/21/18 1:47 PM: --- By looking at the stacktrace, I would say, that during the process of making a snapshot (copy) of the specification-cache (basically a java.util.HashMap) the map gets modified. This can only happen if 2 different threads are involved. To guard against concurrent modification of the specification-cache, we either need to replace the HashMap with a ConcurrentHashMap or we synchronize reads and writes to the cache. But on second thought, I do believe during Isis Application bootstrapping there is only a single thread involved. So the reason for seeing this exception could be related to an issue with the particular java runtime environment where somehow application bootstrapping does interfere with 'left over' instances that cause this kind of side effects!? I myself do work a lot with Apache Isis, and never encountered this kind of error stack trace. was (Author: hobrom): By looking at the stacktrace, I would say, that during the process of making a snapshot (copy) of the specification-cache (basically a java.util.HashMap) the map gets modified. This can only happen if 2 different threads are involved. To guard against concurrent modification of the specification-cache, we either need to replace the HashMap with a ConcurrentHashMap or we synchronize reads and writes to the cache. But on second thought, I do believe during Isis Application bootstrapping there is only a single thread involved. So the reason for seeing this exception could be related to an issue with the particular java runtime environment where somehow application bootstrapping does interfere with some 'left over' instances that case this kind of side effects!? I myself do work a lot with Apache Isis, and never encountered this kind of error stack trace. > ConcurrentModificationException when stating application > > > Key: ISIS-1964 > URL: https://issues.apache.org/jira/browse/ISIS-1964 > Project: Isis > Issue Type: Bug > Components: Core >Affects Versions: 1.16.2 >Reporter: Vladimir Nisevic >Priority: Major > Fix For: 1.16.3 > > > Hi Dan, meanwhile we are using 1.16.2 and observe still (more rarely) this > exception during startup. > > {code:java} > 018-06-20 15:10:47.546 [localhost-startStop-1] init ERROR > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication - Failed to > initialize > com.google.inject.ProvisionException: Unable to provision, see the following > errors: > 1) Error in custom provider, java.lang.RuntimeException: An error occurred > while executing code in a temporary session > 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:155) > while locating at.a1ta.cll.webapp.CllWebApplication > 1 error > at > com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:486) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67) > at > com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987) > at > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:368) > at at.a1ta.cll.webapp.CllWebApplication.init(CllWebApplication.java:32) > at org.apache.wicket.Application.initApplication(Application.java:953) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:353) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266) > at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4590) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5233) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at >
[jira] [Comment Edited] (ISIS-1964) ConcurrentModificationException when stating application
[ https://issues.apache.org/jira/browse/ISIS-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16519372#comment-16519372 ] Andi Huber edited comment on ISIS-1964 at 6/21/18 1:46 PM: --- By looking at the stacktrace, I would say, that during the process of making a snapshot (copy) of the specification-cache (basically a java.util.HashMap) the map gets modified. This can only happen if 2 different threads are involved. To guard against concurrent modification of the specification-cache, we either need to replace the HashMap with a ConcurrentHashMap or we synchronize reads and writes to the cache. But on second thought, I do believe during Isis Application bootstrapping there is only a single thread involved. So the reason for seeing this exception could be related to an issue with the particular java runtime environment where somehow application bootstrapping does interfere with some 'left over' instances that case this kind of side effects!? I myself do work a lot with Apache Isis, and never encountered this kind of error stack trace. was (Author: hobrom): By looking at the stacktrace, I would say, that during the process of making a snapshot (copy) of the specification-cache (basically a java.util.HashMap) the map gets modified. This can only happen if 2 different threads are involved. To guard against concurrent modification of the specification-cache, we either need to replace the HashMap with a ConcurrentHashMap or we synchronize reads and writes to the cache. > ConcurrentModificationException when stating application > > > Key: ISIS-1964 > URL: https://issues.apache.org/jira/browse/ISIS-1964 > Project: Isis > Issue Type: Bug > Components: Core >Affects Versions: 1.16.2 >Reporter: Vladimir Nisevic >Priority: Major > Fix For: 1.16.3 > > > Hi Dan, meanwhile we are using 1.16.2 and observe still (more rarely) this > exception during startup. > > {code:java} > 018-06-20 15:10:47.546 [localhost-startStop-1] init ERROR > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication - Failed to > initialize > com.google.inject.ProvisionException: Unable to provision, see the following > errors: > 1) Error in custom provider, java.lang.RuntimeException: An error occurred > while executing code in a temporary session > 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:155) > while locating at.a1ta.cll.webapp.CllWebApplication > 1 error > at > com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:486) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67) > at > com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987) > at > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:368) > at at.a1ta.cll.webapp.CllWebApplication.init(CllWebApplication.java:32) > at org.apache.wicket.Application.initApplication(Application.java:953) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:353) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266) > at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4590) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5233) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629) > at > org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at >
[jira] [Commented] (ISIS-1964) ConcurrentModificationException when stating application
[ https://issues.apache.org/jira/browse/ISIS-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16519372#comment-16519372 ] Andi Huber commented on ISIS-1964: -- By looking at the stacktrace, I would say, that during the process of making a snapshot (copy) of the specification-cache (basically a java.util.HashMap) the map gets modified. This can only happen if 2 different threads are involved. To guard against concurrent modification of the specification-cache, we either need to replace the HashMap with a ConcurrentHashMap or we synchronize reads and writes to the cache. > ConcurrentModificationException when stating application > > > Key: ISIS-1964 > URL: https://issues.apache.org/jira/browse/ISIS-1964 > Project: Isis > Issue Type: Bug > Components: Core >Affects Versions: 1.16.2 >Reporter: Vladimir Nisevic >Priority: Major > Fix For: 1.16.3 > > > Hi Dan, meanwhile we are using 1.16.2 and observe still (more rarely) this > exception during startup. > > {code:java} > 018-06-20 15:10:47.546 [localhost-startStop-1] init ERROR > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication - Failed to > initialize > com.google.inject.ProvisionException: Unable to provision, see the following > errors: > 1) Error in custom provider, java.lang.RuntimeException: An error occurred > while executing code in a temporary session > 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:155) > while locating at.a1ta.cll.webapp.CllWebApplication > 1 error > at > com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:486) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67) > at > com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987) > at > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:368) > at at.a1ta.cll.webapp.CllWebApplication.init(CllWebApplication.java:32) > at org.apache.wicket.Application.initApplication(Application.java:953) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:353) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266) > at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4590) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5233) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629) > at > org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.RuntimeException: An error occurred while executing code > in a temporary session > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:366) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:330) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:317) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder.buildSessionFactory(IsisSessionFactoryBuilder.java:211) > at > org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSessionFactory(IsisInjectModule.java:118) > at > org.apache.isis.core.runtime.runner.IsisInjectModule$$FastClassByGuice$$a813f90e.invoke() > at > com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:264) > at >
[jira] [Updated] (ISIS-1964) ConcurrentModificationException when stating application
[ https://issues.apache.org/jira/browse/ISIS-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andi Huber updated ISIS-1964: - Fix Version/s: 1.16.3 > ConcurrentModificationException when stating application > > > Key: ISIS-1964 > URL: https://issues.apache.org/jira/browse/ISIS-1964 > Project: Isis > Issue Type: Bug > Components: Core >Affects Versions: 1.16.2 >Reporter: Vladimir Nisevic >Priority: Major > Fix For: 1.16.3 > > > Hi Dan, meanwhile we are using 1.16.2 and observe still (more rarely) this > exception during startup. > > {code:java} > 018-06-20 15:10:47.546 [localhost-startStop-1] init ERROR > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication - Failed to > initialize > com.google.inject.ProvisionException: Unable to provision, see the following > errors: > 1) Error in custom provider, java.lang.RuntimeException: An error occurred > while executing code in a temporary session > 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:155) > while locating at.a1ta.cll.webapp.CllWebApplication > 1 error > at > com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:486) > at > com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67) > at > com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:987) > at > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:368) > at at.a1ta.cll.webapp.CllWebApplication.init(CllWebApplication.java:32) > at org.apache.wicket.Application.initApplication(Application.java:953) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429) > at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:353) > at > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285) > at > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266) > at > org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) > at > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4590) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5233) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) > at > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629) > at > org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.RuntimeException: An error occurred while executing code > in a temporary session > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:366) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:330) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactory.doInSession(IsisSessionFactory.java:317) > at > org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder.buildSessionFactory(IsisSessionFactoryBuilder.java:211) > at > org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSessionFactory(IsisInjectModule.java:118) > at > org.apache.isis.core.runtime.runner.IsisInjectModule$$FastClassByGuice$$a813f90e.invoke() > at > com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:264) > at > com.google.inject.internal.ProviderMethod$Factory.provision(ProviderMethod.java:401) > at > com.google.inject.internal.ProviderMethod$Factory.get(ProviderMethod.java:376) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) > at >