Uploaded image for project: 'Seam 2'
  1. Seam 2
  2. JBSEAM-1857

ManagedEntityIdentityInterceptor nulls fields incorrectly in reentrant calls to conversation scoped components

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Blocker
    • Resolution: Done
    • Affects Version/s: 2.0.0.BETA1
    • Fix Version/s: 2.0.0.CR1
    • Component/s: Core
    • Labels:
      None
    • Environment:

      Seam 2.0.0.BETA1, also jboss-seam-CVS.2007-08-22_00-49-47

      Description

      When a conversation component method is called in a reentrant fashion, entity fields are nulled incorrectly.

      The scenario is as follows:

      I. Component A method is called
      A. entityIdsToRefs(). (reinject entity fields)
      B. Method invoked
      C. Component A calls method in object B
      D. Object B calls method in Component A.
      i. entityIdsToRefs()
      ii. Method invoked
      iii. entityRefsToIds(). (disinject entity fields, set to null, save in conversation)
      E. entityRefsToIds(). (fields are already null, so clearWrapper is called, and the objects are removed from the conversation)
      II. Component A method is called, values are null, and cannot be retrieved from the conversation context (they are in the removals map)

      The solution seems to be the same as what was done with the BijectionInterceptor in JBSEAM-631. I wonder if this also might be related to JBSEAM-1840?

      I've attached a patch that fixes the problem for me, please review.

      Thanks!

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  norman.richards Norman Richards
                  Reporter:
                  kahliburke Kahli Burke
                • Votes:
                  2 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: