Java Common Annotations and APIs specification, section "Java API" /
The getCallbackID() method description doesn't specify the initial state
of the returned value and the events that cause this value to change.
Consider the following sequence of events:
1) A ServiceReference is created, either by injection or by
2) getCallbackID() is called on the ServiceReference.
3) A type-safe reference (proxy) is created from the ServiceReference by
4) getCallbackID() is called on the ServiceReference.
5) A service call is made through the type-safe reference.
6) getCallbackID() is called on the ServiceReference.
It seems reasonably intuitive that call 2) will return null and call 6)
will return the system-generated callback ID that was used for the service
call. It's less clear what call 4) will return. Does the
system-generated callback ID get created and set into the ServiceReference
as part of event 3) or as part of event 5)?
The description of the getCallbackID() method should describe a "state
model" for how the value returned would change based on other actions.
At point 2) the value returned will be null. At point 4, it will still be
null, At point 6), it will be the system-generated callback ID that was
used for the service call 5). This information should be stated
explicitly in the description of getCallbackID().
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU