public void visit()

in src/main/java/org/apache/accumulo/testing/randomwalk/image/Verify.java [46:94]


  public void visit(State state, RandWalkEnv env, Properties props) throws Exception {

    int maxVerify = Integer.parseInt(props.getProperty("maxVerify"));
    int numVerifications = env.getRandom().nextInt(maxVerify - 1) + 1;

    indexTableName = state.getString("indexTableName");
    imageTableName = state.getString("imageTableName");

    AccumuloClient client = env.getAccumuloClient();

    try (Scanner indexScanner = client.createScanner(indexTableName, new Authorizations());
        Scanner imageScanner = client.createScanner(imageTableName, new Authorizations())) {

      String uuid = UUID.randomUUID().toString();

      MessageDigest alg = MessageDigest.getInstance("SHA-1");
      alg.update(uuid.getBytes(UTF_8));

      indexScanner.setRange(new Range(new Text(alg.digest()), null));
      indexScanner.setBatchSize(numVerifications);

      Text curRow = null;
      int count = 0;
      for (Entry<Key,Value> entry : indexScanner) {

        curRow = entry.getKey().getRow();
        String rowToVerify = entry.getValue().toString();

        verifyRow(imageScanner, rowToVerify);

        count++;
        if (count == numVerifications) {
          break;
        }
      }

      if (count != numVerifications && curRow != null) {
        Text lastRow = (Text) state.get("lastIndexRow");
        if (lastRow.compareTo(curRow) != 0) {
          log.error("Verified only " + count + " of " + numVerifications + " - curRow " + curRow
              + " lastKey " + lastRow);
        }
      }
    }

    int verified = state.getInteger("verified") + numVerifications;
    log.debug("Verified " + numVerifications + " - Total " + verified);
    state.set("verified", verified);
  }