[hotfix][util] Added suppressExceptions for lambda functions
Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/81d3e72e Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/81d3e72e Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/81d3e72e Branch: refs/heads/master Commit: 81d3e72eb8cd9eb591f6ea67bc904dd0ad200a17 Parents: 435d9d3 Author: Piotr Nowojski <[email protected]> Authored: Tue Nov 28 08:42:19 2017 +0100 Committer: Stefan Richter <[email protected]> Committed: Mon Jan 8 11:46:01 2018 +0100 ---------------------------------------------------------------------- .../org/apache/flink/util/ExceptionUtils.java | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/81d3e72e/flink-core/src/main/java/org/apache/flink/util/ExceptionUtils.java ---------------------------------------------------------------------- diff --git a/flink-core/src/main/java/org/apache/flink/util/ExceptionUtils.java b/flink-core/src/main/java/org/apache/flink/util/ExceptionUtils.java index c2a9723..e36ea2b 100644 --- a/flink-core/src/main/java/org/apache/flink/util/ExceptionUtils.java +++ b/flink-core/src/main/java/org/apache/flink/util/ExceptionUtils.java @@ -378,6 +378,31 @@ public final class ExceptionUtils { } // ------------------------------------------------------------------------ + // Lambda exception utilities + // ------------------------------------------------------------------------ + + public static void suppressExceptions(RunnableWithException action) { + try { + action.run(); + } + catch (InterruptedException e) { + // restore interrupted state + Thread.currentThread().interrupt(); + } + catch (Throwable t) { + if (isJvmFatalError(t)) { + rethrow(t); + } + } + } + + @FunctionalInterface + public interface RunnableWithException { + + void run() throws Exception; + } + + // ------------------------------------------------------------------------ /** Private constructor to prevent instantiation. */ private ExceptionUtils() {}
