Repository: airavata
Updated Branches:
  refs/heads/master eb3ae3163 -> 67195e535


Fixing server hanging issue - 
https://issues.apache.org/jira/browse/AIRAVATA-1072


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/67195e53
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/67195e53
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/67195e53

Branch: refs/heads/master
Commit: 67195e5356bd24f074f6198c9ebb51e1c93767fc
Parents: eb3ae31
Author: lahiru <[email protected]>
Authored: Mon Mar 10 18:45:44 2014 -0400
Committer: lahiru <[email protected]>
Committed: Mon Mar 10 18:45:44 2014 -0400

----------------------------------------------------------------------
 .../airavata/job/monitor/core/PushMonitor.java    |  8 ++++++++
 .../job/monitor/impl/push/amqp/AMQPMonitor.java   | 18 +++++++++++++++++-
 2 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/67195e53/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/core/PushMonitor.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/core/PushMonitor.java
 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/core/PushMonitor.java
index 01793ac..e3ecccd 100644
--- 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/core/PushMonitor.java
+++ 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/core/PushMonitor.java
@@ -49,4 +49,12 @@ public abstract class PushMonitor extends 
AiravataAbstractMonitor {
      * @return
      */
     public abstract boolean unRegisterListener(MonitorID monitorID)throws 
AiravataMonitorException;
+
+    /**
+     * This can be used to stop the registration thread
+     * @return
+     * @throws AiravataMonitorException
+     */
+    public abstract boolean stopRegister()throws AiravataMonitorException;
+
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/67195e53/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/AMQPMonitor.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/AMQPMonitor.java
 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/AMQPMonitor.java
index 8bca73c..807d49d 100644
--- 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/AMQPMonitor.java
+++ 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/push/amqp/AMQPMonitor.java
@@ -67,6 +67,8 @@ public class AMQPMonitor extends PushMonitor {
 
     private List<String> amqpHosts;
 
+    private boolean startRegister;
+
     public AMQPMonitor(){
 
     }
@@ -122,7 +124,8 @@ public class AMQPMonitor extends PushMonitor {
 
     public void run() {
         // before going to the while true mode we start unregister thread
-        while (true) {
+        startRegister = true; // this will be unset by someone else
+        while (startRegister) {
             try {
                 MonitorID take = runningQueue.take();
                 this.registerListener(take);
@@ -173,6 +176,11 @@ public class AMQPMonitor extends PushMonitor {
         return true;
     }
 
+    @Override
+    public boolean stopRegister() throws AiravataMonitorException {
+        return false;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
     public Map<String, Channel> getAvailableChannels() {
         return availableChannels;
     }
@@ -220,4 +228,12 @@ public class AMQPMonitor extends PushMonitor {
     public void setAmqpHosts(List<String> amqpHosts) {
         this.amqpHosts = amqpHosts;
     }
+
+    public boolean isStartRegister() {
+        return startRegister;
+    }
+
+    public void setStartRegister(boolean startRegister) {
+        this.startRegister = startRegister;
+    }
 }

Reply via email to