You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2014/08/06 16:21:42 UTC

[2/3] git commit: https://issues.apache.org/jira/browse/AMQ-5016 - evolve the class in a serialization compat way so that exiting kahadb stores can be read, long field addition

https://issues.apache.org/jira/browse/AMQ-5016 - evolve the class in a serialization compat way so that exiting kahadb stores can be read, long field addition


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/58ae402b
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/58ae402b
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/58ae402b

Branch: refs/heads/trunk
Commit: 58ae402b1d61e74511cfd29e1aea7e9597b3a76b
Parents: 4165972
Author: gtully <ga...@gmail.com>
Authored: Wed Aug 6 15:19:50 2014 +0100
Committer: gtully <ga...@gmail.com>
Committed: Wed Aug 6 15:21:19 2014 +0100

----------------------------------------------------------------------
 .../org/apache/activemq/util/BitArrayBin.java   | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/58ae402b/activemq-client/src/main/java/org/apache/activemq/util/BitArrayBin.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/util/BitArrayBin.java b/activemq-client/src/main/java/org/apache/activemq/util/BitArrayBin.java
index 528144e..d988ae1 100755
--- a/activemq-client/src/main/java/org/apache/activemq/util/BitArrayBin.java
+++ b/activemq-client/src/main/java/org/apache/activemq/util/BitArrayBin.java
@@ -29,9 +29,9 @@ public class BitArrayBin implements Serializable {
     private static final long serialVersionUID = 1L;
     private final LinkedList<BitArray> list;
     private int maxNumberOfArrays;
-    private long firstIndex = -1;
+    private int firstIndex = -1;  // leave 'int' for old serialization compatibility and introduce new 'long' field
     private long lastInOrderBit=-1;
-
+    private long longFirstIndex=-1;
     /**
      * Create a BitArrayBin to a certain window size (number of messages to
      * keep)
@@ -90,7 +90,7 @@ public class BitArrayBin implements Serializable {
      * @return true/false
      */
     public boolean getBit(long index) {
-        boolean answer = index >= firstIndex;
+        boolean answer = index >= longFirstIndex;
         BitArray ba = getBitArray(index);
         if (ba != null) {
             int offset = getOffset(index);
@@ -119,7 +119,7 @@ public class BitArrayBin implements Serializable {
                 int overShoot = bin - maxNumberOfArrays + 1;
                 while (overShoot > 0) {
                     list.removeFirst();
-                    firstIndex += BitArray.LONG_SIZE;
+                    longFirstIndex += BitArray.LONG_SIZE;
                     list.add(new BitArray());
                     overShoot--;
                 }
@@ -143,10 +143,10 @@ public class BitArrayBin implements Serializable {
      */
     private int getBin(long index) {
         int answer = 0;
-        if (firstIndex < 0) {
-            firstIndex = (int) (index - (index % BitArray.LONG_SIZE));
-        } else if (firstIndex >= 0) {
-            answer = (int)((index - firstIndex) / BitArray.LONG_SIZE);
+        if (longFirstIndex < 0) {
+            longFirstIndex = (int) (index - (index % BitArray.LONG_SIZE));
+        } else if (longFirstIndex >= 0) {
+            answer = (int)((index - longFirstIndex) / BitArray.LONG_SIZE);
         }
         return answer;
     }
@@ -159,8 +159,8 @@ public class BitArrayBin implements Serializable {
      */
     private int getOffset(long index) {
         int answer = 0;
-        if (firstIndex >= 0) {
-            answer = (int)((index - firstIndex) - (BitArray.LONG_SIZE * getBin(index)));
+        if (longFirstIndex >= 0) {
+            answer = (int)((index - longFirstIndex) - (BitArray.LONG_SIZE * getBin(index)));
         }
         return answer;
     }
@@ -168,8 +168,8 @@ public class BitArrayBin implements Serializable {
     public long getLastSetIndex() {
         long result = -1;
 
-        if (firstIndex >=0) {
-            result = firstIndex;
+        if (longFirstIndex >=0) {
+            result = longFirstIndex;
             BitArray last = null;
             for (int lastBitArrayIndex = maxNumberOfArrays -1; lastBitArrayIndex >= 0; lastBitArrayIndex--) {
                 last = list.get(lastBitArrayIndex);