You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Greg Dritschler (JIRA)" <de...@tuscany.apache.org> on 2011/06/15 17:03:47 UTC

[jira] [Commented] (TUSCANY-3875) SCAClientFactory.getService() doesn't throw NoSuchServiceException in a JVM with no composites

    [ https://issues.apache.org/jira/browse/TUSCANY-3875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13049803#comment-13049803 ] 

Greg Dritschler commented on TUSCANY-3875:
------------------------------------------

If SCAClientFactoryImpl.getService() is changed to always find the endpoint, it should pass that endpoint into the invocation handler so the handler doesn't have to call findEndpoint() again.

> 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