SCAClientFactory.getService() doesn't throw NoSuchServiceException in a JVM
with no composites
----------------------------------------------------------------------------------------------
Key: TUSCANY-3875
URL: https://issues.apache.org/jira/browse/TUSCANY-3875
Project: Tuscany
Issue Type: Bug
Reporter: Greg Dritschler
Priority: Minor
If a JVM has no OASIS composites in a given domain,
SCAClientFactoryImpl.findLocalRuntime() won't find an existing domain registry.
It constructs a client domain registry and sets a flag "remoteClient" to true.
This causes getService() to skip over the service lookup and to just return a
proxy. When the client invokes the proxy, the invocation handler checks if the
service exists in the client domain registry. If not, it throws
NoSuchServiceException. Since this is a checked exception and it's not defined
on the business interface, the client gets an UndeclaredThrowableException.
If the JVM does have some running OASIS composites in the domain, getService()
will check if it has the desired service and if not, throw a
NoSuchServiceException as expected.
This doesn't seem entirely consistent. In either case the service may show up
later on some remote node. Why should the client behave differently depending
on whether the local node itself has some unrelated OASIS components running in
it at that moment?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira