Repository: phoenix Updated Branches: refs/heads/4.x-HBase-0.98 1fc19625e -> 419ee637e
PHOENIX-2528 Pherf JVM doesn't exit due to un-closed ThreadPool (elserj) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/419ee637 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/419ee637 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/419ee637 Branch: refs/heads/4.x-HBase-0.98 Commit: 419ee637e561386c0b22be1b51d5533bb28538de Parents: 1fc1962 Author: Mujtaba <mujt...@apache.org> Authored: Tue Dec 22 15:18:23 2015 -0800 Committer: Mujtaba <mujt...@apache.org> Committed: Tue Dec 22 15:18:23 2015 -0800 ---------------------------------------------------------------------- .../main/java/org/apache/phoenix/pherf/Pherf.java | 18 ++++++++++-------- .../apache/phoenix/pherf/util/ResourceList.java | 3 ++- .../phoenix/pherf/workload/WriteWorkload.java | 1 + 3 files changed, 13 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/419ee637/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/Pherf.java ---------------------------------------------------------------------- diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/Pherf.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/Pherf.java index b84183b..154d6ff 100644 --- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/Pherf.java +++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/Pherf.java @@ -254,11 +254,17 @@ public class Pherf { // Schema and Data Load if (preLoadData) { logger.info("\nStarting Data Load..."); - WriteWorkload workload = new WriteWorkload(parser, generateStatistics); - workloadExecutor.add(workload); + Workload workload = new WriteWorkload(parser, generateStatistics); + try { + workloadExecutor.add(workload); - // Wait for dataLoad to complete - workloadExecutor.get(workload); + // Wait for dataLoad to complete + workloadExecutor.get(workload); + } finally { + if (null != workload) { + workload.complete(); + } + } } else { logger.info( "\nSKIPPED: Data Load and schema creation as -l argument not specified"); @@ -290,10 +296,6 @@ public class Pherf { if (workloadExecutor != null) { logger.info("Run completed. Shutting down thread pool."); workloadExecutor.shutdown(); - if (preLoadData) { - System.exit(0); - } - } } } http://git-wip-us.apache.org/repos/asf/phoenix/blob/419ee637/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/util/ResourceList.java ---------------------------------------------------------------------- diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/util/ResourceList.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/util/ResourceList.java index 5359c35..037426e 100644 --- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/util/ResourceList.java +++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/util/ResourceList.java @@ -18,6 +18,7 @@ package org.apache.phoenix.pherf.util; +import org.apache.commons.lang3.StringUtils; import org.apache.phoenix.pherf.exception.PherfException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -108,7 +109,7 @@ public class ResourceList { final String element, final Pattern pattern) { final List<String> retVal = new ArrayList<>(); - if (element.equals("")) { + if (StringUtils.isBlank(element)) { return retVal; } final File file = new File(element); http://git-wip-us.apache.org/repos/asf/phoenix/blob/419ee637/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WriteWorkload.java ---------------------------------------------------------------------- diff --git a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WriteWorkload.java b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WriteWorkload.java index a35e6e8..e536eb9 100644 --- a/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WriteWorkload.java +++ b/phoenix-pherf/src/main/java/org/apache/phoenix/pherf/workload/WriteWorkload.java @@ -134,6 +134,7 @@ public class WriteWorkload implements Workload { } @Override public void complete() { + pool.shutdownNow(); } public Runnable execute() throws Exception {