nastra commented on code in PR #8909:
URL: https://github.com/apache/iceberg/pull/8909#discussion_r1422634486


##########
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:
   +1 on improving exception handling in the nessie code as I've raised this 
already before, because it's difficult to read & understand when certain things 
are thrown.
   However, I would suggest to do this as an immediate follow-up after this PR 
is merged, as otherwise this makes it more difficult to review the changes 
being introduced for Views



-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to