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

<begin-task> clobbers the conversation flush-mode




      As far as I can tell, using the <begin-task> tag in a page.xml file for a page seems to set the flush-mode to "auto" and ignore any other declared flush-mode settings.

      While developing a series of simple task pages for a jBPM process I am implementing, I noticed that form data was being flushed and committed to the database immediately after been submitted via an AJAX request. I supposed this was because the flush-mode was not what I thought it was.

      (First issue, there is no Conversation.instance().getFlushModeType() method, which would have been useful)

      -The link used to get to this page used "end" for conversation propagation.
      -The page.xml for the page used <begin-conversation join="true" flush-mode="MANUAL"/> and <begin-task task-id="#



      I tried adding flush-mode="manual" to the begin-task tag, but it had no affect (changes were still being flushed and committed to the database. I tried removing the <begin-conversation> tag altogether after reading that <begin-task> should start a conversation anyways (or was it <start-task>?). I then got an error about needing to use "join=true" for my conversation settings.

      Finally, I was able to get around this by using a page action like below, leaving the <begin-conversation join="true" flush-mode="MANUAL">, and removing the <begin-task> tag.

      private Long taskId;

      public void beginTask(){
      if(taskId != null)

      { BusinessProcess.instance().resumeTask(taskId); Conversation.instance().changeFlushMode(FlushModeType.MANUAL); }


      I hope this is coherent. Also, this is my first time to report an issue here. Forgive me if I did anything wrong.




            Unassigned Unassigned
            mgt7456 Marshall Treadaway (Inactive)
            0 Vote for this issue
            0 Start watching this issue