Weld
  1. Weld
  2. WELD-833

ConcurrentModificationException while deactivating conversations

    Details

    • Type: Bug Bug
    • Status: Closed Closed (View Workflow)
    • Priority: Major Major
    • Resolution: Done
    • Affects Version/s: 1.1.0.CR3, 1.1.0.Final, TBC
    • Fix Version/s: 1.1.1.Final
    • Component/s: Conversations
    • Labels:
      None
    • Similar Issues:
      Show 10 results 

      Description

      If a conversation gets deactivated, the code which actually iterates the map of conversations in org.jboss.weld.context.AbstractConversationContext is erroneous and easily runs into a ConcurrentModificationException if there is more than one conversation. We consider this a pretty serious defect because its not possible to use JBoss AS 6.0 GA for a real-world application.

      See attached patch for a fix.

        Issue Links

          Activity

          Hide
          Vetle Leinonen-Roeim
          added a comment -

          This needs to be fixed in Glassfish 3.1 as well.

          Show
          Vetle Leinonen-Roeim
          added a comment - This needs to be fixed in Glassfish 3.1 as well.
          Hide
          Ales Justin
          added a comment -

          We're planning a Weld 1.1.1 release in the next couple of days,
          which will include this (and other) fix(es).

          Show
          Ales Justin
          added a comment - We're planning a Weld 1.1.1 release in the next couple of days, which will include this (and other) fix(es).
          Hide
          Vasilii Lukoyanov
          added a comment -

          Looking forward to get fixed version asap.

          Show
          Vasilii Lukoyanov
          added a comment - Looking forward to get fixed version asap.
          Hide
          Ales Justin
          added a comment -

          I'll close this, as the code should be fixed,
          but we're still missing a proper test.

          Show
          Ales Justin
          added a comment - I'll close this, as the code should be fixed, but we're still missing a proper test.
          Hide
          Ove Ranheim
          added a comment -

          I experience the same issue with Seam Solder and Faces 3.0.0.Final.

          For JBoss 6 users we have to wait for 6.0.1, and I've found a workaround.

          Instead of e.g.:

          @Begin
          void beginConversation();

          @End
          void endConversation();

          You may write:

          void beginConversation()
          {
          if (conversation.isTransient())

          { conversation.begin(); }

          }

          void endConversation()
          {
          if (!conversation.isTransient())

          { conversation.end(); }

          }

          This would be a workaround this issue for Weld 1.1.0.Final users. However, for Seam Faces the interceptor (org.jboss.seam.faces.context.conversation.ConversationBoundaryInterceptor) would not be able to discover manual call to conversation begin / end.

          Show
          Ove Ranheim
          added a comment - I experience the same issue with Seam Solder and Faces 3.0.0.Final. For JBoss 6 users we have to wait for 6.0.1, and I've found a workaround. Instead of e.g.: @Begin void beginConversation(); @End void endConversation(); You may write: void beginConversation() { if (conversation.isTransient()) { conversation.begin(); } } void endConversation() { if (!conversation.isTransient()) { conversation.end(); } } This would be a workaround this issue for Weld 1.1.0.Final users. However, for Seam Faces the interceptor (org.jboss.seam.faces.context.conversation.ConversationBoundaryInterceptor) would not be able to discover manual call to conversation begin / end.

            People

            • Assignee:
              Ales Justin
              Reporter:
              Jan Groth
            • Votes:
              11 Vote for this issue
              Watchers:
              19 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: