dimas-b commented on code in PR #8909:
URL: https://github.com/apache/iceberg/pull/8909#discussion_r1422658039
##########
nessie/src/main/java/org/apache/iceberg/nessie/NessieTableOperations.java:
##########
@@ -133,69 +114,30 @@ protected void doCommit(TableMetadata base, TableMetadata
metadata) {
boolean newTable = base == null;
String newMetadataLocation = writeNewMetadataIfRequired(newTable,
metadata);
- String refName = client.refName();
boolean failure = false;
try {
String contentId = table == null ? null : table.getId();
client.commitTable(base, metadata, newMetadataLocation, contentId, key);
- } catch (NessieConflictException ex) {
- failure = true;
- if (ex instanceof NessieReferenceConflictException) {
- // Throws a specialized exception, if possible
- maybeThrowSpecializedException((NessieReferenceConflictException) ex);
+ } catch (NessieConflictException | NessieNotFoundException |
HttpClientException ex) {
+ if (ex instanceof NessieConflictException || ex instanceof
NessieNotFoundException) {
+ failure = true;
}
- throw new CommitFailedException(
- ex,
- "Cannot commit: Reference hash is out of date. "
- + "Update the reference '%s' and try again",
- refName);
- } catch (HttpClientException ex) {
- // Intentionally catch all nessie-client-exceptions here and not just
the "timeout" variant
- // to catch all kinds of network errors (e.g. connection reset). Network
code implementation
- // details and all kinds of network devices can induce unexpected
behavior. So better be
- // safe than sorry.
- throw new CommitStateUnknownException(ex);
- } catch (NessieNotFoundException ex) {
+ NessieUtil.handleExceptionsForCommits(ex, client.refName(),
Content.Type.ICEBERG_TABLE)
+ .ifPresent(
+ exception -> {
+ throw exception;
Review Comment:
I'm fine with a follow-up.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]