Use ExecutorService variables to assign ExecutorService Instances (#11373)
* Added inspection rule to prohibit ExecutorService assignment to Executor
* Use ExecutorService type variable to assign ExecutorService
* Changed : Variable => variable
* Removed unused Executor import
diff --git a/.idea/inspectionProfiles/Druid.xml b/.idea/inspectionProfiles/Druid.xml
index 2da1cb7..d1f72dd 100644
--- a/.idea/inspectionProfiles/Druid.xml
+++ b/.idea/inspectionProfiles/Druid.xml
@@ -372,6 +372,16 @@
<constraint name="l" within="" contains="" />
<constraint name="y" minCount="0" maxCount="2147483647" within="" contains="" />
</searchConfiguration>
+ <searchConfiguration name="Assign an ExecutorService instance to an ExecutorService variable, not an Executor variable" text="$x$ = $y$;" recursive="true" caseInsensitive="true" type="JAVA" >
+ <constraint name="__context__" within="" contains="" />
+ <constraint name="x" nameOfExprType="java\.util\.concurrent\.Executor" within="" contains="" />
+ <constraint name="y" nameOfExprType="java\.util\.concurrent\.ExecutorService" exprTypeWithinHierarchy="true" within="" contains="" />
+ </searchConfiguration>
+ <searchConfiguration name="Intialize an ExecutorService instance to an ExecutorService variable, not an Executor variable" text="Executor $x$ = $y$;" recursive="true" caseInsensitive="true" type="JAVA" >
+ <constraint name="__context__" within="" contains="" />
+ <constraint name="x" within="" contains="" />
+ <constraint name="y" nameOfExprType="java\.util\.concurrent\.ExecutorService" exprTypeWithinHierarchy="true" within="" contains="" />
+ </searchConfiguration>
<searchConfiguration name="Create a simple ExecutorService (not scheduled)" text="$x$ = $y$;" recursive="true" caseInsensitive="true" type="JAVA" pattern_context="default">
<constraint name="__context__" within="" contains="" />
<constraint name="x" nameOfExprType="java\.util\.concurrent\.ExecutorService" within="" contains="" />
diff --git a/extensions-core/druid-kerberos/src/main/java/org/apache/druid/security/kerberos/KerberosHttpClient.java b/extensions-core/druid-kerberos/src/main/java/org/apache/druid/security/kerberos/KerberosHttpClient.java
index 6a7e693..eee32ac 100644
--- a/extensions-core/druid-kerberos/src/main/java/org/apache/druid/security/kerberos/KerberosHttpClient.java
+++ b/extensions-core/druid-kerberos/src/main/java/org/apache/druid/security/kerberos/KerberosHttpClient.java
@@ -39,7 +39,7 @@
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
public class KerberosHttpClient extends AbstractHttpClient
{
@@ -47,7 +47,7 @@
private final HttpClient delegate;
private final CookieManager cookieManager;
- private final Executor exec = Execs.singleThreaded("test-%s");
+ private final ExecutorService exec = Execs.singleThreaded("test-%s");
private final String internalClientPrincipal;
private final String internalClientKeytab;
diff --git a/server/src/test/java/org/apache/druid/server/initialization/JettyTest.java b/server/src/test/java/org/apache/druid/server/initialization/JettyTest.java
index 0e7459b..1e8f369 100644
--- a/server/src/test/java/org/apache/druid/server/initialization/JettyTest.java
+++ b/server/src/test/java/org/apache/druid/server/initialization/JettyTest.java
@@ -76,7 +76,7 @@
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;
@@ -268,7 +268,7 @@
public void testTimeouts() throws Exception
{
// test for request timeouts properly not locking up all threads
- final Executor executor = Executors.newFixedThreadPool(100);
+ final ExecutorService executor = Executors.newFixedThreadPool(100);
final AtomicLong count = new AtomicLong(0);
final CountDownLatch latch = new CountDownLatch(1000);
for (int i = 0; i < 10000; i++) {