[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting ...
Ron Sigal
ron_sigal at yahoo.com
Sat Oct 28 13:49:13 EDT 2006
User: rsigal
Date: 06/10/28 13:49:13
Modified: src/main/org/jboss/remoting Client.java
Log:
JBREM-605: Changed acknowledgeCallback() to acknowledgeCallbacks().
Revision Changes Path
1.53 +40 -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.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- Client.java 19 Oct 2006 21:59:58 -0000 1.52
+++ Client.java 28 Oct 2006 17:49:13 -0000 1.53
@@ -50,7 +50,9 @@
import java.io.ObjectOutput;
import java.io.StreamCorruptedException;
import java.net.InetAddress;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -61,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.52 $
+ * @version $Revision: 1.53 $
*/
public class Client implements Externalizable
{
@@ -378,6 +380,10 @@
*/
public void connect() throws Exception
{
+// @TODO See JBREM-614.
+// if (isConnected())
+// return;
+
if (invoker == null && locator != null)
{
if (socketFactory != null)
@@ -1103,31 +1109,52 @@
}
}
- public void acknowledgeCallback(InvokerCallbackHandler callbackHandler, Callback callback) throws Throwable
+ public int acknowledgeCallbacks(InvokerCallbackHandler callbackHandler, List callbacks)
+ throws Throwable
{
if (callbackHandler == null)
throw new Exception("InvokerCallbackHandler parameter must not be null");
- if (callback == null)
- throw new Exception("Callback parameter must not be null");
+ if (callbacks == null)
+ throw new Exception("Callback ArrayList parameter must not be null");
+
+ if (callbacks.size() == 0)
+ return 0;
if (isConnected())
{
+ ArrayList callbackIds = new ArrayList(callbacks.size());
+ Iterator it = callbacks.iterator();
+ for (int i = 0; i < callbacks.size(); i++)
+ {
+ Callback callback = (Callback) it.next();
Map returnPayload = callback.getReturnPayload();
if (returnPayload != null)
{
Object callbackId = returnPayload.get(ServerInvokerCallbackHandler.CALLBACK_ID);
if (callbackId != null)
{
- Map metadata = createListenerMetadata(callbackHandler);
- InternalInvocation invocation = new InternalInvocation(InternalInvocation.ACKNOWLEDGECALLBACK, new Object[]{callbackId});
- invoke(invocation, metadata);
+ callbackIds.add(callbackId);
+ }
+ else
+ {
+ log.error("Cannot acknowledge callback: callback id is missing from return payload");
+ }
}
else
{
- throw new Exception("Will not acknowledge Callback because it has no registered Listener.");
+ log.error("Cannot acknowledge callback: return payload is null");
}
}
+
+ if (callbackIds.size() == 0)
+ return 0;
+
+ Map metadata = createListenerMetadata(callbackHandler);
+ Object[] callbackIdArray = callbackIds.toArray();
+ InternalInvocation invocation = new InternalInvocation(InternalInvocation.ACKNOWLEDGECALLBACK, callbackIdArray);
+ invoke(invocation, metadata);
+ return callbackIdArray.length;
}
else
{
More information about the jboss-cvs-commits
mailing list