You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2020/10/02 01:07:44 UTC
[asterixdb] 08/11: [NO ISSUE][*DB] += exception helper method
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit d53bfacede553e14109df9e3ef634085f3ce82d9
Author: Michael Blow <mi...@couchbase.com>
AuthorDate: Tue Sep 29 10:25:03 2020 -0400
[NO ISSUE][*DB] += exception helper method
Change-Id: I7d7aee2fb2bb25a59d2825761b127f969348666b
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/8163
Reviewed-by: Murtadha Hubail <mh...@apache.org>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
---
.../apache/asterix/common/exceptions/ExceptionUtils.java | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ExceptionUtils.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ExceptionUtils.java
index 359054e..1f42771 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ExceptionUtils.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ExceptionUtils.java
@@ -21,6 +21,7 @@ package org.apache.asterix.common.exceptions;
import java.util.function.Predicate;
import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.exceptions.IFormattedException;
public class ExceptionUtils {
public static final String INCORRECT_PARAMETER = "Incorrect parameter.\n";
@@ -85,4 +86,18 @@ public class ExceptionUtils {
}
return test.test(e);
}
+
+ /**
+ * Unwraps enclosed exceptions until a non-product exception is found, otherwise returns the root production
+ * exception
+ */
+ public static Throwable unwrap(Throwable e) {
+ Throwable current = e;
+ Throwable cause = e.getCause();
+ while (cause != null && cause != current && current instanceof IFormattedException) {
+ current = cause;
+ cause = current.getCause();
+ }
+ return current;
+ }
}