[JBoss JIRA] Created: (JBREM-1289) CLONE [JBREM-1288] - StreamServer for in-jvm connection should create a LocalServerInvoker
by Ron Sigal (JIRA)
CLONE [JBREM-1288] - StreamServer for in-jvm connection should create a LocalServerInvoker
------------------------------------------------------------------------------------------
Key: JBREM-1289
URL: https://issues.jboss.org/browse/JBREM-1289
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 2.5.4.SP1, 2.2.4
Reporter: Ron Sigal
Assignee: Ron Sigal
Fix For: 2.5.4.SP2, 2.2.4.SP1
When the org.jboss.remoting.Client method
public Object invoke(InputStream inputStream, Object param) throws Throwable;
or one of its variants is called, it calls new StreamServer(inputStream), which creates an org.jboss.remoting.transport.Connector to serve the contents of the InputStream. To determine the transport to be used, StreamServer looks for a system property "remoting.stream.transport", and, if it doesn't exist, it uses "socket" by default. However, if the InputStream is being sent to a server in the same JVM, the "local" transport should be used.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 7 months
[JBoss JIRA] Created: (JBREM-1285) Callback Connector for in-jvm connection should create a LocalServerInvoker
by Ron Sigal (JIRA)
Callback Connector for in-jvm connection should create a LocalServerInvoker
---------------------------------------------------------------------------
Key: JBREM-1285
URL: https://issues.jboss.org/browse/JBREM-1285
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 2.5.4.SP1, 2.2.4
Reporter: Ron Sigal
Assignee: Ron Sigal
Fix For: 2.5.4.SP2, 2.2.4.SP1
When the org.jboss.remoting.Client method
public void addListener(InvokerCallbackHandler callbackhandler, Map metadata) throws Throwable;
or one of its variants is called, it checks if the ClientInvoker is an instance of BidirectionalClientInvoker as part of its determination of whether to set up push or pull callbacks. If the server is in the same jvm, and the parameter "force_remote" is not set to true, then the ClientInvoker will be an instance of LocalClientInvoker, which implements BidirectionalClientInvoker, so that push callbacks will be configured. That means that a callback Connector will be created, whose transport, if not configured in the metadata map, will be derived from the server's InvokerLocator. If, for instance, the transport in the InvokerLocator is "http", the callback Connector will create an instance of CoyoteInvoker. But CoyoteInvoker will create a ServerSocket, which is completely useless since callback invocations will be made by reference.
Client.addListener() should check that its ClientInvoker is a LocalClientInvoker, in which case it should use the "local" transport, before deriving the transport from the servers InvokerLocator.
Shout out to Justin Bertram for tracking down this problem.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 7 months