ctubbsii commented on code in PR #5540:
URL: https://github.com/apache/accumulo/pull/5540#discussion_r2133351096
##########
core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java:
##########
@@ -1118,6 +1118,27 @@ public Map<String,String> modifyProperties(String
tableName,
}
}
+ /**
+ * Like modifyProperties(...), but if an AccumuloException is caused by a
TableNotFoundException,
+ * unwrap and rethrow the TNFE directly. This is a hacky, temporary
workaround that we can use
+ * until we are able to change the public API and throw TNFE directly from
all applicable methods.
+ */
+ private Map<String,String> modifyPropertiesUnwrapped(String tableName,
+ Consumer<Map<String,String>> mapMutator) throws TableNotFoundException,
AccumuloException,
+ AccumuloSecurityException, IllegalArgumentException {
+
+ try {
+ return modifyProperties(tableName, mapMutator);
+ } catch (AccumuloException ae) {
+ Throwable cause = ae.getCause();
+ if (cause instanceof TableNotFoundException) {
+ throw new
TableNotFoundException(context.getTableId(tableName).canonical(), tableName,
+ ae.getMessage(), ae);
Review Comment:
If the table is not found, then looking up the tableId this way is going to
throw a completely different TNFE, and the one you are trying to create here
will never actually get thrown.
Even if you replace the tableId with null instead of trying to look it up,
this construction will mangle the getMessage() on the exception quite a bit,
since the parameter here is supposed to be a description snippet that is used
to construct a larger message. But what you're passing in here is already a
full message from the previous exception.
I think you can just do:
```suggestion
throw new TableNotFoundException(null, tableName, null, ae);
```
##########
core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java:
##########
@@ -1118,6 +1118,27 @@ public Map<String,String> modifyProperties(String
tableName,
}
}
+ /**
+ * Like modifyProperties(...), but if an AccumuloException is caused by a
TableNotFoundException,
+ * unwrap and rethrow the TNFE directly. This is a hacky, temporary
workaround that we can use
+ * until we are able to change the public API and throw TNFE directly from
all applicable methods.
+ */
+ private Map<String,String> modifyPropertiesUnwrapped(String tableName,
+ Consumer<Map<String,String>> mapMutator) throws TableNotFoundException,
AccumuloException,
+ AccumuloSecurityException, IllegalArgumentException {
Review Comment:
Don't need to declare RTEs.
```suggestion
private Map<String,String> modifyPropertiesUnwrapped(String tableName,
Consumer<Map<String,String>> mapMutator) throws
TableNotFoundException, AccumuloException,
AccumuloSecurityException {
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]