Uploaded image for project: 'JBoss WFK 2'
  1. JBoss WFK 2
  2. WFK2-615

Potential java.util.ConcurrentModificationException in org.jboss.seam.international.StatusMessages.doRunTasks

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: 2.6.0.ER1, 2.7.0.CR2
    • Fix Version/s: None
    • Component/s: Seam 2
    • Labels:
      None
    • Target Release:
    • Steps to Reproduce:
      Hide

      1. Increase concurrent-request-timeout to 60000 in components.xml
      2. Add Thread.sleep(4000) to org.jboss.seam.international.StatusMessages.doRunTasks() inside the for cycle to make it easier to reproduce.
      3. Build jboss-seam and nestedbooking example, deploy example.
      4. Open two browser tabs.
      5. In first tab login, hit search query and click on View Hotel e.g. for Marriott Courtyard
      6. Copy url from first tab to the second tab.
      7. On the first tab process booking till Confirm page.
      8. On the second tab process booking till Proceed page.
      9. On the first tab click on "Confirm", immediately switch to second tab and click on "Proceed".

      Show
      1. Increase concurrent-request-timeout to 60000 in components.xml 2. Add Thread.sleep(4000) to org.jboss.seam.international.StatusMessages.doRunTasks() inside the for cycle to make it easier to reproduce. 3. Build jboss-seam and nestedbooking example, deploy example. 4. Open two browser tabs. 5. In first tab login, hit search query and click on View Hotel e.g. for Marriott Courtyard 6. Copy url from first tab to the second tab. 7. On the first tab process booking till Confirm page. 8. On the second tab process booking till Proceed page. 9. On the first tab click on "Confirm", immediately switch to second tab and click on "Proceed".
    • Release Notes Docs Status:
      Documented as Known Issue
    • Release Notes Text:
      Hide
      Seam does not unlock conversations as expected after they have been terminated with an @End method. This can cause problems in specific cases of concurrent requests to the same conversation, which leads to exceptions including ConcurrentRequestTimeoutException or ConcurrentModificationException. There is no workaround at this time.
      Show
      Seam does not unlock conversations as expected after they have been terminated with an @End method. This can cause problems in specific cases of concurrent requests to the same conversation, which leads to exceptions including ConcurrentRequestTimeoutException or ConcurrentModificationException. There is no workaround at this time.

      Description

      As described in https://issues.jboss.org/browse/JBPAPP-10500, the conversation is unlocked too soon and a ConcurrentModificationException is possible in StatusMessages.

      15:18:05,477 WARN  [org.jboss.seam.jsf.SeamPhaseListener] (http-/127.0.0.1:8080-4) uncaught exception, passing to exception handler: java.util.ConcurrentModificationException
      	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859) [rt.jar:1.7.0_55]
      	at java.util.ArrayList$Itr.next(ArrayList.java:831) [rt.jar:1.7.0_55]
      	at org.jboss.seam.international.StatusMessages.doRunTasks(StatusMessages.java:390) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.international.StatusMessages.runTasks(StatusMessages.java:381) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.faces.FacesMessages.afterPhase(FacesMessages.java:66) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:242) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:195) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
      	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
      	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
      	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
      	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) [jboss-seam.jar:2.3.4.Final-redhat-1]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.4.0.Final-redhat-12.jar:7.4.0.Final-redhat-12]
      	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.4.0.Final-redhat-12.jar:7.4.0.Final-redhat-12]
      	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.4.0.Final-redhat-12.jar:7.4.0.Final-redhat-12]
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.4.2.Final-redhat-1.jar:7.4.2.Final-redhat-1]
      	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_55]
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  manaRH Marek Novotny
                  Reporter:
                  maschmid Marek Schmidt
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: