Repository: airavata Updated Branches: refs/heads/master 73c8337aa -> ae15740d8
fixing exception handling Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/c92fbd39 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/c92fbd39 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/c92fbd39 Branch: refs/heads/master Commit: c92fbd39dfe35adcebe5b25a804b1d70b0023635 Parents: be901aa Author: Lahiru Gunathilake <[email protected]> Authored: Wed Apr 15 08:58:04 2015 -0400 Committer: Lahiru Gunathilake <[email protected]> Committed: Wed Apr 15 08:58:04 2015 -0400 ---------------------------------------------------------------------- .../main/java/org/apache/airavata/gfac/server/GfacServer.java | 2 ++ .../org/apache/airavata/gfac/server/GfacServerHandler.java | 7 ++++++- .../airavata/gfac/core/utils/GFacThreadPoolExecutor.java | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/c92fbd39/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServer.java ---------------------------------------------------------------------- diff --git a/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServer.java b/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServer.java index e37a9ab..01115b6 100644 --- a/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServer.java +++ b/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServer.java @@ -23,6 +23,7 @@ package org.apache.airavata.gfac.server; import org.apache.airavata.common.utils.Constants; import org.apache.airavata.common.utils.IServer; import org.apache.airavata.common.utils.ServerSettings; +import org.apache.airavata.gfac.core.utils.GFacThreadPoolExecutor; import org.apache.airavata.gfac.cpi.GfacService; import org.apache.thrift.server.TServer; import org.apache.thrift.server.TThreadPoolServer; @@ -109,6 +110,7 @@ public class GfacServer implements IServer{ setStatus(IServer.ServerStatus.STOPING); server.stop(); } + GFacThreadPoolExecutor.getFixedThreadPool().shutdownNow(); } http://git-wip-us.apache.org/repos/asf/airavata/blob/c92fbd39/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java b/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java index f3e1d91..6652db0 100644 --- a/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java +++ b/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java @@ -255,7 +255,12 @@ public class GfacServerHandler implements GfacService.Iface, Watcher { logger.debugId(experimentId, "Submitted job to the Gfac Implementation, experiment {}, task {}, gateway " + "{}", experimentId, taskId, gatewayId); - GFacThreadPoolExecutor.getFixedThreadPool().execute(inputHandlerWorker); + try { + GFacThreadPoolExecutor.getFixedThreadPool().execute(inputHandlerWorker); + } catch (ApplicationSettingsException e) { + logger.error(e.getMessage(), e); + throw new TException(e); + } // we immediately return when we have a threadpool return true; http://git-wip-us.apache.org/repos/asf/airavata/blob/c92fbd39/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacThreadPoolExecutor.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacThreadPoolExecutor.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacThreadPoolExecutor.java index 7853513..3c8d56a 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacThreadPoolExecutor.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacThreadPoolExecutor.java @@ -41,12 +41,13 @@ public class GFacThreadPoolExecutor { return threadPool; } - public static ExecutorService getFixedThreadPool() { + public static ExecutorService getFixedThreadPool() throws ApplicationSettingsException { if(threadPool ==null){ try { threadPool = Executors.newFixedThreadPool(Integer.parseInt(ServerSettings.getSetting(GFAC_THREAD_POOL_SIZE))); } catch (ApplicationSettingsException e) { logger.error("Error reading " + GFAC_THREAD_POOL_SIZE+ " property"); + throw e; } } return threadPool;
