Changeset 843:0b1d8563dbe3


Ignore:
Timestamp:
02/03/12 20:09:57 (4 months ago)
Author:
xeraph@xeraph-pc.office.nchovy.net
Branch:
default
Message:

fixed IndexOutOfBoundException after config doc deletion and rollback.

Location:
kraken-confdb
Files:
7 added
4 edited

Legend:

Unmodified
Added
Removed
  • kraken-confdb/pom.xml

    r821 r840  
    1010        </parent> 
    1111        <artifactId>kraken-confdb</artifactId> 
    12         <version>0.7.0</version> 
     12        <version>0.7.1</version> 
    1313        <packaging>bundle</packaging> 
    1414        <name>Kraken Config Database</name> 
  • kraken-confdb/src/main/java/org/krakenapps/confdb/file/FileConfigCollection.java

    r828 r843  
    139139                for (long index = 0; index < count; index++) { 
    140140                        RevLog log = reader.read(index); 
    141                         if (manifest.containsDoc(col.getName(), log.getDocId(), log.getRev())) 
     141                        // assume that rev is unique 
     142                        if ((log.getOperation() == CommitOp.CreateDoc || log.getOperation() == CommitOp.UpdateDoc) 
     143                                        && manifest.containsDoc(col.getName(), log.getDocId(), log.getRev())) 
    142144                                snapshot.add(log); 
    143145                } 
  • kraken-confdb/src/main/java/org/krakenapps/confdb/file/FileManifest.java

    r830 r843  
    232232                        return true; 
    233233                } 
     234 
     235                @Override 
     236                public String toString() { 
     237                        return "col=" + colId + ", doc=" + docId; 
     238                } 
    234239        } 
    235240} 
  • kraken-confdb/src/test/java/org/krakenapps/confdb/file/DatabaseTest.java

    r821 r843  
    250250 
    251251        @Test 
    252         public void testThreadLock() { 
    253                 // coming soon 
     252        public void testRollbackBug() throws IOException { 
     253                FileConfigDatabase db = new FileConfigDatabase(new File("src/test/resources"), "rollback-bug"); 
     254                ConfigCollection col = db.ensureCollection("table"); 
     255                ConfigIterator it = col.findAll(); 
     256                while (it.hasNext()) 
     257                        it.next(); 
    254258        } 
    255259} 
Note: See TracChangeset for help on using the changeset viewer.