Invocation of Dynamically Registered Callbacks Gets Stuck without Exception
---------------------------------------------------------------------------
Key: TUSCANY-3464
URL: https://issues.apache.org/jira/browse/TUSCANY-3464
Project: Tuscany
Issue Type: Bug
Components: Java SCA Core Runtime
Affects Versions: Java-SCA-2.0-M3
Environment: Mac OS X 10.5 and 10.6, JavaSE 1.6, Apache Tuscany 2.0M4
and also a recent nightly build.
Reporter: Ivan Krizsan
Further explorations of callbacks in Tuscany 2.0M4. I have the following
scenario:
- Two Observer SCA components.
Each component has a reference to an Observable component with the
wiredByImpl="true".
- One Observable SCA component.
This component has a callback with the interface of the Observer component as
parameter, but no callback is injected in the component.
To register for notifications, an Observer calls register on anObservable,
without any parameters.
In the Observable, a callback service reference is retrieved like this:
ServiceReference<ObserverService> theObserverRef =
mRequestContext.getCallbackReference();
This service reference is stored and later, when a periodic task is run, an
attempt is made to call all the Observer components that have registered with
the Observable, like this:
for (ServiceReference<ObserverService> theObserverRef : mObservers.values())
{
theObserverRef.getService().notify("" + theCurrentTime);
}
This fails - the call to notify never returns and there are no error messages
or exceptions in the log.
If I try to call the callback when it registers, there is an exception and a
complaint about "No callback wire found".
Is it possible to use callbacks in the way described above?
Service Component Architecture SCA-J Common Annotations and APIs
Specification, version 1.1, in section 7.2.4 says:
"Because ServiceReference objects are serializable, they can be stored
persistently and retrieved at
a later time to make a callback invocation after the associated service
request has completed."
...so I was lead to believe that my scenario would be possible.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.