in src/main/java/org/apache/accumulo/testing/randomwalk/concurrent/BatchScan.java [45:75]
public void visit(State state, RandWalkEnv env, Properties props) throws Exception {
AccumuloClient client = env.getAccumuloClient();
Random rand = state.getRandom();
String tableName = state.getRandomTableName();
try (BatchScanner bs = client.createBatchScanner(tableName, Authorizations.EMPTY, 3)) {
List<Range> ranges = new ArrayList<>();
for (int i = 0; i < rand.nextInt(2000) + 1; i++)
ranges.add(new Range(String.format("%016x", rand.nextLong() & 0x7fffffffffffffffL)));
bs.setRanges(ranges);
Iterator<Entry<Key,Value>> iter = bs.iterator();
while (iter.hasNext())
iter.next();
log.debug("Wrote to " + tableName);
} catch (TableNotFoundException e) {
log.debug("BatchScan " + tableName + " failed, doesn't exist");
} catch (TableDeletedException tde) {
log.debug("BatchScan " + tableName + " failed, table deleted");
} catch (TableOfflineException e) {
log.debug("BatchScan " + tableName + " failed, offline");
} catch (RuntimeException e) {
if (e.getCause() instanceof AccumuloSecurityException) {
log.debug("BatchScan " + tableName + " failed, permission error");
} else {
throw e;
}
}
}