You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2012/01/10 22:11:24 UTC

svn commit: r1229738 - /incubator/accumulo/branches/1.4/src/examples/src/main/java/org/apache/accumulo/examples/shard/ContinuousQuery.java

Author: kturner
Date: Tue Jan 10 21:11:24 2012
New Revision: 1229738

URL: http://svn.apache.org/viewvc?rev=1229738&view=rev
Log:
ACCUMULO-281 Fixed array index out of bound and batch scanner usage in shard continuous query example

Modified:
    incubator/accumulo/branches/1.4/src/examples/src/main/java/org/apache/accumulo/examples/shard/ContinuousQuery.java

Modified: incubator/accumulo/branches/1.4/src/examples/src/main/java/org/apache/accumulo/examples/shard/ContinuousQuery.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/examples/src/main/java/org/apache/accumulo/examples/shard/ContinuousQuery.java?rev=1229738&r1=1229737&r2=1229738&view=diff
==============================================================================
--- incubator/accumulo/branches/1.4/src/examples/src/main/java/org/apache/accumulo/examples/shard/ContinuousQuery.java (original)
+++ incubator/accumulo/branches/1.4/src/examples/src/main/java/org/apache/accumulo/examples/shard/ContinuousQuery.java Tue Jan 10 21:11:24 2012
@@ -43,7 +43,7 @@ import org.apache.hadoop.io.Text;
 public class ContinuousQuery {
   public static void main(String[] args) throws Exception {
     
-    if (args.length < 7) {
+    if (args.length != 7 && args.length != 8) {
       System.err.println("Usage : " + ContinuousQuery.class.getName()
           + " <instance> <zoo keepers> <shard table> <doc2word table> <user> <pass> <num query terms> [iterations]");
       System.exit(-1);
@@ -57,7 +57,7 @@ public class ContinuousQuery {
     String pass = args[5];
     int numTerms = Integer.parseInt(args[6]);
     long iterations = Long.MAX_VALUE;
-    if (args.length >= 7)
+    if (args.length > 7)
       iterations = Long.parseLong(args[7]);
     
     ZooKeeperInstance zki = new ZooKeeperInstance(instance, zooKeepers);
@@ -67,10 +67,14 @@ public class ContinuousQuery {
     
     Random rand = new Random();
     
+    BatchScanner bs = conn.createBatchScanner(table, Constants.NO_AUTHS, 20);
+
     for (long i = 0; i < iterations; i += 1) {
       Text[] columns = randTerms.get(rand.nextInt(randTerms.size()));
       
-      BatchScanner bs = conn.createBatchScanner(table, Constants.NO_AUTHS, 20);
+      bs.clearScanIterators();
+      bs.clearColumns();
+
       IteratorSetting ii = new IteratorSetting(20, "ii", IntersectingIterator.class);
       IntersectingIterator.setColumnFamilies(ii, columns);
       bs.addScanIterator(ii);
@@ -85,9 +89,10 @@ public class ContinuousQuery {
       long t2 = System.currentTimeMillis();
       
       System.out.printf("  %s %,d %6.3f\n", Arrays.asList(columns), count, (t2 - t1) / 1000.0);
-      
     }
     
+    bs.close();
+
   }
   
   private static ArrayList<Text[]> findRandomTerms(Scanner scanner, int numTerms) {