OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-j message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [sca-j] NEW ISSUE: Semantics of ServiceReference.getConversationID()



RAISER: Simon Nash
 
TARGET: SCA Java Common Annotations and APIs
 
DESCRIPTION:

When a conversation has been initiated by calling through a proxy obtained
from a ServiceReference, and setConversationID() has not been called on
the ServiceReference, does ServiceReference.getConversationID() return
 a) null
 b) the system-generated conversation ID that would be obtained by
    calling ServiceReference.getConversation().getConversationID()
 c) either or the above depending on the implementation

Lines 363-367 of the Java Common Annotations and APIs spec state that a
system-generated conversation ID would be returned (option b).  Lines 780-781
say that only a user-specified conversation would be returned (option a).

Here are the relevant extracts from the 2/28/08 Working Draft:

lines 340-343 section 6.5

If a method is invoked on a service reference after an @EndsConversation method has been called
then a new conversation will automatically be started.  If ServiceReference.getConversationID()
is called after the @EndsConversationmethod is called, but before the next conversation has been
started, it will return null.

lines 363-367 section 6.6.2

Whether the conversation ID is chosen by the client or is generated by the system, the client
may access the conversation ID  by calling ServiceReference.getConversationID().  
If the conversation ID is not application specified, then the ServiceReference.getConversationID()
method is only guaranteed to return a valid value after the first operation has been invoked,
otherwise it returns null.

lines 780-781 section 7.4 ServiceReference

getConversationID()  - Returns the id supplied by the user that will be associated with
conversations initiated through this reference.

lines 782-785 section 7.4 ServiceReference

setConversationID(Object conversationId) - Set the id to associate with any conversation
started through this reference.  If the value supplied is null then the id will be generated
by the implementation.  Throws an IllegalStateException if a conversation is currently
associated with this reference.

lines 800-802 section 7.5 Conversation

getConversationID() - Returns the identifier for this conversation.  If a user-defined identity
had been supplied for this reference then its value will be returned; otherwise the identity
generated by the system when the conversation was initiated will be returned.

PROPOSAL:

Option a.

Replace lines 363-367 with the following:

Whether the conversation ID is chosen by the client or is generated by the system, the client
may access the conversation ID  by calling ServiceReference.getConversation().getConversationID().  

Replace lines 780-781 with the following:

getConversationID()  - Returns the id supplied by the user that will be associated with
conversations initiated through this reference, or null if no id has been supplied
by the user.


Simon C. Nash, IBM Distinguished Engineer
Member of the IBM Academy of Technology
Tel. +44-1962-815156  Fax +44-1962-818999






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU








[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]