User: pkendall
  Date: 01/08/01 13:22:35

  Modified:    src/main/org/jbossmq/pm/rollinglogged
                        PersistenceManager.java
  Log:
  Fix bug in rollover when logs have more than one digit extension.
  
  Revision  Changes    Path
  1.2       +13 -3     
jbossmq/src/main/org/jbossmq/pm/rollinglogged/PersistenceManager.java
  
  Index: PersistenceManager.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbossmq/src/main/org/jbossmq/pm/rollinglogged/PersistenceManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PersistenceManager.java   2001/07/31 20:17:52     1.1
  +++ PersistenceManager.java   2001/08/01 20:22:35     1.2
  @@ -373,7 +373,10 @@
       for(int i=0;i<dataFiles.length;++i){
         String name = dataFiles[i].getName();
         if(name.startsWith(TRANS_FILE_NAME)){
  -        int rollOver = name.charAt(name.length()-1) - '0';
  +        int index = name.indexOf(".dat");
  +        if(index < 0) continue;
  +        String sRollOver = name.substring(index+4);
  +        int rollOver = Integer.parseInt(sRollOver);
           numRollOvers = Math.max(numRollOvers,rollOver+1);
           SpyTxLog txLog = new SpyTxLog(dataFiles[i].getAbsolutePath());
           txLog.restore(commitedTxs);
  @@ -388,8 +391,11 @@
       for(int i=0;i<dataFiles.length;++i){
         String name = dataFiles[i].getName();
         if(!name.startsWith(TRANS_FILE_NAME)){
  -        int rollOver = name.charAt(name.length()-1) - '0';
  -        String key = name.substring(0,name.length()-5);
  +        int index = name.indexOf(".dat");
  +        if(index < 0) continue;
  +        String sRollOver = name.substring(index+4);
  +        int rollOver = Integer.parseInt(sRollOver);
  +        String key = name.substring(0,name.length()-(sRollOver.length()+4));
           SpyMessageLog messageLog = new 
SpyMessageLog(dataFiles[i].getAbsolutePath());
           SpyMessage [] messages = messageLog.restore(commitedTxs);
           SpyTxLog txLog = (SpyTxLog)txLogs.get(new Integer(rollOver));
  @@ -407,6 +413,10 @@
             }
           }
         }
  +    }
  +
  +    for(Iterator it = txLogs.values().iterator();it.hasNext();){
  +      checkCleanup((SpyTxLog)it.next());
       }
   
       try{
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to