[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting ...
Ron Sigal
ron_sigal at yahoo.com
Wed Dec 6 22:20:52 EST 2006
User: rsigal
Date: 06/12/06 22:20:52
Modified: src/main/org/jboss/remoting Tag: remoting_2_x Client.java
Log:
JBREM-622: Conforms to change in AbstractInvoker, which stores InvokerCallbackHandlers keyed on sessionId
Revision Changes Path
No revision
No revision
1.53.2.7 +30 -13 JBossRemoting/src/main/org/jboss/remoting/Client.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Client.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/Client.java,v
retrieving revision 1.53.2.6
retrieving revision 1.53.2.7
diff -u -b -r1.53.2.6 -r1.53.2.7
--- Client.java 28 Nov 2006 20:30:23 -0000 1.53.2.6
+++ Client.java 7 Dec 2006 03:20:52 -0000 1.53.2.7
@@ -63,7 +63,7 @@
*
* @author <a href="mailto:jhaynie at vocalocity.net">Jeff Haynie</a>
* @author <a href="mailto:telrod at e2technologies.net">Tom Elrod</a>
- * @version $Revision: 1.53.2.6 $
+ * @version $Revision: 1.53.2.7 $
*/
public class Client implements Externalizable
{
@@ -1035,7 +1035,7 @@
{
// is going to be push callbacks which means callback server locator involved.
// will have to delegate to client invoker.
- String listenerId = invoker.addClientLocator(callbackhandler, callbackLocator);
+ String listenerId = invoker.addClientLocator(sessionId, callbackhandler, callbackLocator);
if (listenerId != null)
{
@@ -1157,18 +1157,32 @@
if (callbackHandler != null)
{
// first need to see if is push or pull callback (i.e. does have locator associated with it)
- String listenerId = (String)listeners.remove(callbackHandler);
+ String listenerId = (String)listeners.get(callbackHandler);
if(listenerId != null)
{
// have a pull callback handler
Map metadata = new HashMap();
metadata.put(LISTENER_ID_KEY, listenerId);
invoke(new InternalInvocation(InternalInvocation.REMOVELISTENER, null), metadata);
+
+ // clean up callback poller if one exists
+ CallbackPoller callbackPoller = (CallbackPoller) callbackPollers.remove(callbackHandler);
+ if (callbackPoller != null)
+ {
+ callbackPoller.stop();
+ }
+
+ listeners.remove(callbackHandler);
+
+// // have a pull callback handler
+// Map metadata = new HashMap();
+// metadata.put(LISTENER_ID_KEY, listenerId);
+// invoke(new InternalInvocation(InternalInvocation.REMOVELISTENER, null), metadata);
}
else
{
// have a push callback handler
- List holderList = invoker.getClientLocators(callbackHandler);
+ List holderList = invoker.getClientLocators(sessionId, callbackHandler);
if(holderList != null && holderList.size() > 0)
{
for(int x = 0; x < holderList.size(); x++)
@@ -1179,6 +1193,9 @@
Map metadata = new HashMap();
metadata.put(LISTENER_ID_KEY, listenerId);
+ // now call target server to remove listener
+ invoke(new InternalInvocation(InternalInvocation.REMOVELISTENER, null), metadata);
+
// call to callback server to remove listener
Client client = new Client(locator, subsystem);
client.setSessionId(getSessionId());
@@ -1187,9 +1204,9 @@
new Object[]{callbackHandler}),
metadata);
client.disconnect();
-
- // now call target server to remove listener
- invoke(new InternalInvocation(InternalInvocation.REMOVELISTENER, null), metadata);
+//
+// // now call target server to remove listener
+// invoke(new InternalInvocation(InternalInvocation.REMOVELISTENER, null), metadata);
}
}
@@ -1223,12 +1240,12 @@
callbackConnector.destroy();
}
- // clean up callback poller if one exists
- CallbackPoller callbackPoller = (CallbackPoller) callbackPollers.remove(callbackHandler);
- if (callbackPoller != null)
- {
- callbackPoller.stop();
- }
+// // clean up callback poller if one exists
+// CallbackPoller callbackPoller = (CallbackPoller) callbackPollers.remove(callbackHandler);
+// if (callbackPoller != null)
+// {
+// callbackPoller.stop();
+// }
}
else
{
More information about the jboss-cvs-commits
mailing list