[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() {}

Reply via email to