From 5f53dced5e32eb5cc79d82a2b86b111be510d3fd Mon Sep 17 00:00:00 2001 From: Koushik Das Date: Thu, 10 Apr 2014 12:05:04 +0530 Subject: [PATCH] CLOUDSTACK-6363: [Automation] jetty server is going OOM for simulator --- .../com/cloud/resource/AgentResourceBase.java | 16 +++++++++++++++- .../com/cloud/resource/AgentRoutingResource.java | 2 +- .../com/cloud/resource/AgentStorageResource.java | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java index 3cc91155b80..cf4b40e1426 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java @@ -25,10 +25,12 @@ import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; import javax.inject.Inject; import javax.naming.ConfigurationException; +import org.apache.cloudstack.managed.context.ManagedContextRunnable; import org.apache.log4j.Logger; import com.cloud.agent.IAgentControl; @@ -244,7 +246,19 @@ public class AgentResourceBase implements ServerResource { } @Override - public Answer executeRequest(Command cmd) { + public final Answer executeRequest(final Command cmd) { + final AtomicReference result = new AtomicReference(); + new ManagedContextRunnable() { + @Override + protected void runInContext() { + result.set(executeRequestInContext(cmd)); + } + }.run(); + + return result.get(); + } + + public Answer executeRequestInContext(Command cmd) { return null; } diff --git a/plugins/hypervisors/simulator/src/com/cloud/resource/AgentRoutingResource.java b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentRoutingResource.java index 2fca291c3e1..f857261e613 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/resource/AgentRoutingResource.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentRoutingResource.java @@ -77,7 +77,7 @@ public class AgentRoutingResource extends AgentStorageResource { } @Override - public Answer executeRequest(Command cmd) { + public Answer executeRequestInContext(Command cmd) { try { if (cmd instanceof StartCommand) { return execute((StartCommand)cmd); diff --git a/plugins/hypervisors/simulator/src/com/cloud/resource/AgentStorageResource.java b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentStorageResource.java index f52fd60bbbd..751da9e3d2a 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/resource/AgentStorageResource.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentStorageResource.java @@ -54,7 +54,7 @@ public class AgentStorageResource extends AgentResourceBase implements Secondary } @Override - public Answer executeRequest(Command cmd) { + public Answer executeRequestInContext(Command cmd) { if (cmd instanceof ReadyCommand) { return new ReadyAnswer((ReadyCommand)cmd); } else {