Tuscany
  1. Tuscany
  2. TUSCANY-1996

ConversationEndedException is not thrown.

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Invalid
    • Affects Version/s: Java-SCA-1.0.1
    • Fix Version/s: Java-SCA-1.x
    • Component/s: SCA Java Runtime
    • Labels:
      None
    • Environment:
      Revision: 596254

      Description

      ConversationEndedException is not thrown if you reuse a service after you have ended the conversation or the conversation has expired. Instead it starts a new conversation with the same conversation id. This can be seen in the conversationPreInvoke method in the JDKInvocationHandler. Where conversations are re-used even if they are in the ended state.

      Ben

        Activity

        Hide
        Ben Smith added a comment -

        OK... I'm happy that this is has been fixed previously

        Show
        Ben Smith added a comment - OK... I'm happy that this is has been fixed previously
        Hide
        Simon Nash added a comment -

        This behavior is correct for the case of explicitly ending the conversation, but not for the case of the conversation timing out. The following is from the SCA Java Annotations and APIs 1.00 errata at http://www.osoa.org/display/Main/Errata+for+Java+Annotations+and+APIs+V1.00

        5. Resolve contradiction regarding ConversationEndedException

        Description: Section 1.6.2.2 @EndsConversation (lines 409-420) states that when a method is called on a conversational interface after an @EndsConversation has been called, a ConversationEndedException is thrown. This contradicts section 1.6.5 Conversation Lifetime Summary / Ending conversations, lines 494-495, where it states that "after an @EndsConversation method has been called" (on a service reference) ", then a new conversation will automatically be started." ...and... (lines 498-499) if the conversation has timed out, a ConversationEndedException is thrown.

        Solution: Replace lines 417-420 at the end of section 1.6.2.2 with the following: "If a conversation is ended with an explicit outbound call to an @EndsConversation method or a call to ServiceReference.endConversation(), then any subsequent call to an operation on the service reference will start a new conversation. If the conversation ends for any other reason (e.g. a timeout occurred), then until ServiceReference.getConversation().end() is called, the ConversationEndedException will be thrown by any conversational operation."

        Show
        Simon Nash added a comment - This behavior is correct for the case of explicitly ending the conversation, but not for the case of the conversation timing out. The following is from the SCA Java Annotations and APIs 1.00 errata at http://www.osoa.org/display/Main/Errata+for+Java+Annotations+and+APIs+V1.00 5. Resolve contradiction regarding ConversationEndedException Description: Section 1.6.2.2 @EndsConversation (lines 409-420) states that when a method is called on a conversational interface after an @EndsConversation has been called, a ConversationEndedException is thrown. This contradicts section 1.6.5 Conversation Lifetime Summary / Ending conversations, lines 494-495, where it states that "after an @EndsConversation method has been called" (on a service reference) ", then a new conversation will automatically be started." ...and... (lines 498-499) if the conversation has timed out, a ConversationEndedException is thrown. Solution: Replace lines 417-420 at the end of section 1.6.2.2 with the following: "If a conversation is ended with an explicit outbound call to an @EndsConversation method or a call to ServiceReference.endConversation(), then any subsequent call to an operation on the service reference will start a new conversation. If the conversation ends for any other reason (e.g. a timeout occurred), then until ServiceReference.getConversation().end() is called, the ConversationEndedException will be thrown by any conversational operation."

          People

          • Assignee:
            Unassigned
            Reporter:
            Ben Smith
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development