From 7f20b93051b6a8fead3daabb9354d6c56e553867 Mon Sep 17 00:00:00 2001 From: Tim Brooks Date: Mon, 23 Jan 2017 16:34:24 -0600 Subject: [PATCH] Use generic interfaces for checking socket access (#22753) This commit replaces specialized functional interfaces in various plugins with generic options. Instead of creating `StorageRunnable` interfaces in every plugin we can just use `Runnable` or `CheckedRunnable`. --- .../elasticsearch/cloud/gce/util/Access.java | 9 ++------- .../blobstore/gcs/util/SocketAccess.java | 10 +++------- .../cloud/aws/util/SocketAccess.java | 19 +++++-------------- 3 files changed, 10 insertions(+), 28 deletions(-) diff --git a/plugins/discovery-gce/src/main/java/org/elasticsearch/cloud/gce/util/Access.java b/plugins/discovery-gce/src/main/java/org/elasticsearch/cloud/gce/util/Access.java index 044fccb5fa0..ae96dee64c4 100644 --- a/plugins/discovery-gce/src/main/java/org/elasticsearch/cloud/gce/util/Access.java +++ b/plugins/discovery-gce/src/main/java/org/elasticsearch/cloud/gce/util/Access.java @@ -42,10 +42,10 @@ public final class Access { return AccessController.doPrivileged(operation); } - public static void doPrivilegedVoid(DiscoveryRunnable action) { + public static void doPrivilegedVoid(Runnable action) { SpecialPermission.check(); AccessController.doPrivileged((PrivilegedAction) () -> { - action.execute(); + action.run(); return null; }); } @@ -58,9 +58,4 @@ public final class Access { throw (IOException) e.getCause(); } } - - @FunctionalInterface - public interface DiscoveryRunnable { - void execute(); - } } diff --git a/plugins/repository-gcs/src/main/java/org/elasticsearch/common/blobstore/gcs/util/SocketAccess.java b/plugins/repository-gcs/src/main/java/org/elasticsearch/common/blobstore/gcs/util/SocketAccess.java index 3687b54d64c..5d2b4c6bb21 100644 --- a/plugins/repository-gcs/src/main/java/org/elasticsearch/common/blobstore/gcs/util/SocketAccess.java +++ b/plugins/repository-gcs/src/main/java/org/elasticsearch/common/blobstore/gcs/util/SocketAccess.java @@ -20,6 +20,7 @@ package org.elasticsearch.common.blobstore.gcs.util; import org.elasticsearch.SpecialPermission; +import org.elasticsearch.common.CheckedRunnable; import java.io.IOException; import java.net.SocketPermission; @@ -46,20 +47,15 @@ public final class SocketAccess { } } - public static void doPrivilegedVoidIOException(StorageRunnable action) throws IOException { + public static void doPrivilegedVoidIOException(CheckedRunnable action) throws IOException { SpecialPermission.check(); try { AccessController.doPrivileged((PrivilegedExceptionAction) () -> { - action.executeCouldThrow(); + action.run(); return null; }); } catch (PrivilegedActionException e) { throw (IOException) e.getCause(); } } - - @FunctionalInterface - public interface StorageRunnable { - void executeCouldThrow() throws IOException; - } } diff --git a/plugins/repository-s3/src/main/java/org/elasticsearch/cloud/aws/util/SocketAccess.java b/plugins/repository-s3/src/main/java/org/elasticsearch/cloud/aws/util/SocketAccess.java index 726d9e141ab..91a3190d4b9 100644 --- a/plugins/repository-s3/src/main/java/org/elasticsearch/cloud/aws/util/SocketAccess.java +++ b/plugins/repository-s3/src/main/java/org/elasticsearch/cloud/aws/util/SocketAccess.java @@ -38,12 +38,12 @@ public final class SocketAccess { private SocketAccess() {} public static T doPrivileged(PrivilegedAction operation) { - checkSpecialPermission(); + SpecialPermission.check(); return AccessController.doPrivileged(operation); } public static T doPrivilegedIOException(PrivilegedExceptionAction operation) throws IOException { - checkSpecialPermission(); + SpecialPermission.check(); try { return AccessController.doPrivileged(operation); } catch (PrivilegedActionException e) { @@ -51,21 +51,12 @@ public final class SocketAccess { } } - public static void doPrivilegedVoid(StorageRunnable action) { - checkSpecialPermission(); + public static void doPrivilegedVoid(Runnable action) { + SpecialPermission.check(); AccessController.doPrivileged((PrivilegedAction) () -> { - action.execute(); + action.run(); return null; }); } - private static void checkSpecialPermission() { - SpecialPermission.check(); - } - - @FunctionalInterface - public interface StorageRunnable { - void execute(); - } - }