You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ja...@apache.org on 2004/12/03 10:03:58 UTC

cvs commit: ws-fx/sandesha/src/org/apache/sandesha/server/queue ResponseSequenceHash.java

jaliya      2004/12/03 01:03:58

  Modified:    sandesha/src/org/apache/sandesha/server/queue
                        ResponseSequenceHash.java
  Log:
  Fixed the bug in  public boolean hasMessageWithId(String msgId) method
  
  Revision  Changes    Path
  1.8       +32 -2     ws-fx/sandesha/src/org/apache/sandesha/server/queue/ResponseSequenceHash.java
  
  Index: ResponseSequenceHash.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/queue/ResponseSequenceHash.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ResponseSequenceHash.java	2 Dec 2004 13:18:18 -0000	1.7
  +++ ResponseSequenceHash.java	3 Dec 2004 09:03:58 -0000	1.8
  @@ -21,10 +21,12 @@
   import java.util.HashMap;
   import java.util.Iterator;
   import java.util.Set;
  +import java.util.Vector;
   
   import org.apache.sandesha.Constants;
   import org.apache.sandesha.RMMessageContext;
   
  +
   /*
    * Created on Aug 4, 2004 at 5:08:29 PM
    */
  @@ -53,6 +55,8 @@
       private boolean outSeqApproved;
   
       private HashMap hash;
  +    
  +    private Vector markedAsDelete;
   
       private long nextAutoNumber; // key for storing messages.
       //--> USING AUTONUMBER FOR MESSAGENUMBERS
  @@ -63,6 +67,7 @@
           //hasMessagesToSend = false;
           this.sequenceId = sequenceId;
           hash = new HashMap();
  +        markedAsDelete = new Vector();
           nextAutoNumber = 1; //This is the key for storing messages.
           outSeqApproved = false;
       }
  @@ -154,6 +159,17 @@
           whileLoop: while (keys.hasNext()) {
               RMMessageContext tempMsg;
               tempMsg = (RMMessageContext) hash.get(keys.next());
  +            
  +            //EDITED FOR MARKASDELETE
  +            Long msgNo = new Long(tempMsg.getMsgNumber());
  +            if(markedAsDelete.contains(msgNo)){
  +                System.out.println("mark as delete contains "+msgNo);
  +                continue;
  +            }
  +            //System.out.println("mark as delete does not contains "+msgNo);
  +            
  +            //END - EDITED FOR MARKASDELETE
  +            
               long lastSentTime = tempMsg.getLastSentTime();
               //System.out.println("last sent time: "+lastSentTime);
               Date d = new Date();
  @@ -249,6 +265,18 @@
           hash.remove(msgId);
           return msg;
       }
  +    
  +    public boolean markMessageDeleted(Long messageNo){
  +        System.out.println("********* MARKING AS DELETE");
  +        if(hash.containsKey(messageNo)){
  +            markedAsDelete.add(messageNo);
  +            String msgId = ((RMMessageContext) hash.get(messageNo)).getMessageID();
  +            System.out.println("INFO: Marking outgoing message deleted : msgId "
  +                    + msgId);
  +            return true;
  +        }
  +        return false;
  +    }
   
       public long nextMessageNumber(){
           return nextAutoNumber;
  @@ -266,9 +294,11 @@
           
           Iterator it = hash.keySet().iterator();
           while(it.hasNext()){
  -            RMMessageContext msg = (RMMessageContext) it.next();
  +                  
  +            RMMessageContext msg = (RMMessageContext)hash.get(it.next());
               if(msg.getMessageID().equals(msgId))
  -                 return true;
  +                return true;
  +          
           }
           return false;
       }