Author: kturner
Date: Fri Jan 25 19:54:06 2013
New Revision: 1438671

URL: http://svn.apache.org/viewvc?rev=1438671&view=rev
Log:
ACCUMULO-988 make compact Range idempotent again

Modified:
    
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/CompactRange.java

Modified: 
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/CompactRange.java
URL: 
http://svn.apache.org/viewvc/accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/CompactRange.java?rev=1438671&r1=1438670&r2=1438671&view=diff
==============================================================================
--- 
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/CompactRange.java
 (original)
+++ 
accumulo/trunk/server/src/main/java/org/apache/accumulo/server/master/tableOps/CompactRange.java
 Fri Jan 25 19:54:06 2013
@@ -217,12 +217,16 @@ public class CompactRange extends Master
           long flushID = Long.parseLong(new String(tokens[0]));
           flushID++;
           
-          if (tokens.length > 1) {
+          String txidString = String.format("%016x", tid);
+          
+          for (int i = 1; i < tokens.length; i++) {
+            if (tokens[i].startsWith(txidString))
+              continue; // skip self
+
             throw new ThriftTableOperationException(tableId, null, 
TableOperation.COMPACT, TableOperationExceptionType.OTHER,
                 "Another compaction with iterators is running");
           }
 
-          String txidString = String.format("%016x", tid);
           StringBuilder encodedIterators = new StringBuilder();
 
           if (iterators != null && iterators.getIterators().size() > 0) {


Reply via email to