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()
- From: Simon Nash <NASH@uk.ibm.com>
- To: sca-j@lists.oasis-open.org
- Date: Thu, 6 Mar 2008 13:14:52 +0000
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]