in src/main/java/org/apache/accumulo/testing/randomwalk/security/AlterTable.java [72:99]
public static void renameTable(AccumuloClient client, State state, RandWalkEnv env,
String oldName, String newName, boolean hasPermission, boolean tableExists)
throws AccumuloSecurityException, AccumuloException, TableExistsException {
try {
client.tableOperations().rename(oldName, newName);
} catch (AccumuloSecurityException ae) {
if (ae.getSecurityErrorCode().equals(SecurityErrorCode.PERMISSION_DENIED)) {
if (hasPermission)
throw new AccumuloException("Got a security exception when I should have had permission.",
ae);
else
return;
} else if (ae.getSecurityErrorCode().equals(SecurityErrorCode.BAD_CREDENTIALS)) {
if (WalkingSecurity.get(state, env).userPassTransient(client.whoami()))
return;
}
throw new AccumuloException("Got unexpected ae error code", ae);
} catch (TableNotFoundException tnfe) {
if (tableExists)
throw new TableExistsException(null, oldName,
"Got a TableNotFoundException but it should exist", tnfe);
else
return;
}
WalkingSecurity.get(state, env).setTableName(newName);
if (!hasPermission)
throw new AccumuloException("Didn't get Security Exception when we should have");
}