You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2008/09/05 05:29:20 UTC

svn commit: r692326 - in /activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store: KahaDBPersistenceAdaptor.java MessageDatabase.java

Author: chirino
Date: Thu Sep  4 20:29:19 2008
New Revision: 692326

URL: http://svn.apache.org/viewvc?rev=692326&view=rev
Log:
Tweaking to make more test cases pass

Modified:
    activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java
    activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java

Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java?rev=692326&r1=692325&r2=692326&view=diff
==============================================================================
--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java (original)
+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/KahaDBPersistenceAdaptor.java Thu Sep  4 20:29:19 2008
@@ -223,8 +223,11 @@
                             }
                         }
                         if( entry!=null ) {
-                            cursorPos = entry.getKey();
-                            cursorPos.setOffset( cursorPos.getOffset()+1 );
+                            // Copy the location, cause the iterator gives us the key by reference.. changing it
+                            // would mess up the index.
+                            cursorPos = new Location();
+                            cursorPos.setDataFileId(entry.getKey().getDataFileId());
+                            cursorPos.setOffset(entry.getKey().getOffset()+1 );
                         }
                     }
                 });

Modified: activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java?rev=692326&r1=692325&r2=692326&view=diff
==============================================================================
--- activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java (original)
+++ activemq/sandbox/kahadb/src/main/java/org/apache/kahadb/store/MessageDatabase.java Thu Sep  4 20:29:19 2008
@@ -193,6 +193,8 @@
             }
         });
         metadata = new Metadata();
+        pageFile.unload();
+        asyncDataManager.close();
     }
 
 
@@ -398,8 +400,10 @@
 
     private void updateIndex(Transaction tx, KahaRemoveMessageCommand command, Location location) throws IOException {
         StoredDestination sd = getStoredDestination(command.getDestination(), tx);
-        sd.orderIndex.remove(tx, location);
-        sd.messageIdIndex.remove(tx, command.getMessageId());
+        Location l = sd.messageIdIndex.remove(tx, command.getMessageId());
+        if( l!=null ) {
+            sd.orderIndex.remove(tx, l);
+        }
     }
     
     private void updateIndex(Transaction tx, KahaRemoveDestinationCommand command, Location location) throws IOException {