Uploaded image for project: 'Seam Faces'
  1. Seam Faces
  2. SEAMFACES-46

@End should probably not throw exceptions if a conversation could not be ended because it does not exist

    Details

      Description

      The @End annotation calls conversation.end() without first checking conversation.isTransient(). This results in exceptions when invoking the method on a transient conversation.

      This should either be a configuration option of the annotation, or should not occur:

      @End(ConversationPropagation.REQUIRED)
      @End(ConversationPropagation.OPTIONAL)

      Etc... something like that().

        Gliffy Diagrams

          Activity

          Hide
          bleathem Brian Leathem added a comment -

          Similarly, @Begin should not necessarily throw an exception if a Conversation is already long-running.

          Show
          bleathem Brian Leathem added a comment - Similarly, @Begin should not necessarily throw an exception if a Conversation is already long-running.
          Hide
          ssachtleben Sebastian Sachtleben added a comment -

          Added check for conversation.isTransient() on endConversation method. Properly tested, no more exception occur just debug log message "No conversation found after method".

          The current behavior of @Begin is, that every invoke of that method creates a new conversation. The first invoke creates conversation id 1. The next invoke beginConversation of ConversationBoundaryInterceptor still says conversation id is null and transient. Its not possible to add a check to keep the same conversation like @Begin(join=true). The @End invoke is fine. Conversation id is set. But why is the conversation id null on beginConversation even if its invoked before?

          Show
          ssachtleben Sebastian Sachtleben added a comment - Added check for conversation.isTransient() on endConversation method. Properly tested, no more exception occur just debug log message "No conversation found after method". The current behavior of @Begin is, that every invoke of that method creates a new conversation. The first invoke creates conversation id 1. The next invoke beginConversation of ConversationBoundaryInterceptor still says conversation id is null and transient. Its not possible to add a check to keep the same conversation like @Begin(join=true). The @End invoke is fine. Conversation id is set. But why is the conversation id null on beginConversation even if its invoked before?

            People

            • Assignee:
              ssachtleben Sebastian Sachtleben
              Reporter:
              lincolnthree Lincoln Baxter III
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development