User: norbert 
  Date: 00/05/31 17:12:12

  Modified:    src/java/org/spydermq JMSServerQueue.java
  Log:
  P2P system : fix for faulty clients
  
  Revision  Changes    Path
  1.4       +15 -8     spyderMQ/src/java/org/spydermq/JMSServerQueue.java
  
  Index: JMSServerQueue.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spydermq/JMSServerQueue.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JMSServerQueue.java       2000/06/01 00:04:40     1.3
  +++ JMSServerQueue.java       2000/06/01 00:12:12     1.4
  @@ -18,7 +18,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public class JMSServerQueue
   {
  @@ -264,33 +264,40 @@
                        
                        while (true) {
                                
  -                             //Get a receiver
  +                             //At first, find a receiver
                                //NL: We could find a better receiver (load balancing 
?)
                                
                                Log.log("get a receiver");
                                
  -                             if (listeners==0) break;                               
 
  +                             if (listeners==0) break;
                                Iterator i=subscribers.values().iterator();
                                SpyDistributedConnection dc=null;
                                while (i.hasNext()) {
                                        dc=(SpyDistributedConnection)i.next();         
                         
                                        if (dc.listeners) break;
                                }
  +                             
                                if (dc==null||!dc.listeners) {
  -                                     //listeners=0;
  -                                     Log.error("WARNING: The listeners count was 
invalid !");
  +                                     Log.error("FIXME: The listeners count was 
invalid !");
                                        break;
                                }
  -                             
  -                             //Get the message
  +
  +                             //Get the message ( if there is one message pending )
                                SpyMessage mes=startWorkQueue();
                                if (mes==null) break;
                                if (mes.isOutdated()) continue;
  -                             
  +                                                             
                                //Send the message
                                try {
                                        dc.cr.receive(destination,mes);
                                } catch (Exception e) {
  +                                     
  +                                     try {
  +                                             addMessage(mes);
  +                                     } catch (Exception e2) {
  +                                             Log.error(e2);
  +                                     }
  +                                     
                                        Log.error("Cannot deliver this message to the 
client "+dc);                                     
                                        Log.error(e);
                                        handleConnectionFailure(dc,null);
  
  
  

Reply via email to