aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/partitionsender/TestPartitionSender.java
diff options
context:
space:
mode:
authorVlad Rozov <vrozov@apache.org>2018-04-11 10:12:07 -0700
committerParth Chandra <parthc@apache.org>2018-04-17 18:18:57 -0700
commit931b43ec54bf47dcbb4aa9ae4499f37a8f21b408 (patch)
treef3042dd426abd4be5678823b3b06cbfb68b630cd /exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/partitionsender/TestPartitionSender.java
parentfdc69783a0f0014e331fe853b623750ba88c34e0 (diff)
DRILL-6295: PartitionerDecorator may close partitioners while CustomRunnable are active during query cancellation
This closes #1208
Diffstat (limited to 'exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/partitionsender/TestPartitionSender.java')
-rw-r--r--exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/partitionsender/TestPartitionSender.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/partitionsender/TestPartitionSender.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/partitionsender/TestPartitionSender.java
index c431fea74..eaaa87d89 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/partitionsender/TestPartitionSender.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/partitionsender/TestPartitionSender.java
@@ -28,6 +28,7 @@ import java.io.PrintWriter;
import java.nio.file.Paths;
import java.util.List;
import java.util.Random;
+import java.util.concurrent.ExecutionException;
import org.apache.drill.categories.OperatorTest;
import org.apache.drill.PlanTestBase;
@@ -68,6 +69,8 @@ import org.apache.drill.exec.server.options.OptionValue.AccessibleScopes;
import org.apache.drill.exec.server.options.OptionValue.OptionScope;
import org.apache.drill.exec.util.Utilities;
import org.apache.drill.exec.work.QueryWorkUnit;
+import org.apache.drill.test.OperatorFixture.MockExecutorState;
+
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -221,6 +224,7 @@ public class TestPartitionSender extends PlanTestBase {
FragmentContextImpl context = null;
try {
context = new FragmentContextImpl(drillbitContext, planFragment, null, registry);
+ context.setExecutorState(new MockExecutorState());
final int majorFragmentId = planFragment.getHandle().getMajorFragmentId();
final HashPartitionSender partSender = new HashPartitionSender(majorFragmentId, hashToRandomExchange, hashToRandomExchange.getExpression(), mfEndPoints);
partionSenderRootExec = new MockPartitionSenderRootExec(context, incoming, partSender);
@@ -285,8 +289,8 @@ public class TestPartitionSender extends PlanTestBase {
partionSenderRootExec.getStats().startProcessing();
try {
partDecor.executeMethodLogic(new InjectExceptionTest());
- fail("Should throw IOException here");
- } catch (IOException ioe) {
+ fail("executeMethodLogic should throw an exception.");
+ } catch (ExecutionException e) {
final OperatorProfile.Builder oPBuilder = OperatorProfile.newBuilder();
partionSenderRootExec.getStats().addAllMetrics(oPBuilder);
final List<MetricValue> metrics = oPBuilder.getMetricList();
@@ -298,7 +302,8 @@ public class TestPartitionSender extends PlanTestBase {
assertEquals(actualThreads, metric.getLongValue());
}
}
- assertEquals(actualThreads-1, ioe.getSuppressed().length);
+ assertTrue(e.getCause() instanceof IOException);
+ assertEquals(actualThreads-1, e.getCause().getSuppressed().length);
} finally {
partionSenderRootExec.getStats().stopProcessing();
}