This is an automated email from the ASF dual-hosted git repository.

blue pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new d80d7da3d0 Core: Handle IAE in default error handler (#9225)
d80d7da3d0 is described below

commit d80d7da3d0a956e1b6aeadbe26e0cb3f3ef2fb25
Author: Eduard Tudenhoefner <[email protected]>
AuthorDate: Tue Dec 5 19:04:47 2023 +0100

    Core: Handle IAE in default error handler (#9225)
---
 core/src/main/java/org/apache/iceberg/rest/ErrorHandlers.java    | 3 +++
 core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/core/src/main/java/org/apache/iceberg/rest/ErrorHandlers.java 
b/core/src/main/java/org/apache/iceberg/rest/ErrorHandlers.java
index 846820a99d..d4083420ef 100644
--- a/core/src/main/java/org/apache/iceberg/rest/ErrorHandlers.java
+++ b/core/src/main/java/org/apache/iceberg/rest/ErrorHandlers.java
@@ -202,6 +202,9 @@ public class ErrorHandlers {
     public void accept(ErrorResponse error) {
       switch (error.code()) {
         case 400:
+          if 
(IllegalArgumentException.class.getSimpleName().equals(error.type())) {
+            throw new IllegalArgumentException(error.message());
+          }
           throw new BadRequestException("Malformed request: %s", 
error.message());
         case 401:
           throw new NotAuthorizedException("Not authorized: %s", 
error.message());
diff --git a/core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java 
b/core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java
index 8cb77a7762..8280a200d6 100644
--- a/core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java
+++ b/core/src/test/java/org/apache/iceberg/view/ViewCatalogTests.java
@@ -252,7 +252,7 @@ public abstract class ViewCatalogTests<C extends 
ViewCatalog & SupportsNamespace
                     .withQuery(trino.dialect(), trino.sql())
                     .withQuery(trino.dialect(), trino.sql())
                     .create())
-        .isInstanceOf(Exception.class)
+        .isInstanceOf(IllegalArgumentException.class)
         .hasMessageContaining(
             "Invalid view version: Cannot add multiple queries for dialect 
trino");
   }

Reply via email to