[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