Repository: airavata
Updated Branches:
  refs/heads/master e5901e8e8 -> 29e122151


support forced shutdown etc.


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

Branch: refs/heads/master
Commit: 29e122151df1f416fdbec56e01a8312edf69dd2e
Parents: e5901e8
Author: Saminda Wijeratne <[email protected]>
Authored: Mon Mar 10 23:04:07 2014 -0400
Committer: Saminda Wijeratne <[email protected]>
Committed: Mon Mar 10 23:04:07 2014 -0400

----------------------------------------------------------------------
 .../org/apache/airavata/server/ServerMain.java  | 24 ++++++++++++++------
 1 file changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/29e12215/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java
----------------------------------------------------------------------
diff --git 
a/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java 
b/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java
index 9e1b1f8..41d2f16 100644
--- a/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java
+++ b/modules/server/src/main/java/org/apache/airavata/server/ServerMain.java
@@ -47,6 +47,7 @@ public class ServerMain {
        private static int serverIndex=-1;
        private static final String serverStartedFileNamePrefix = 
"airavata-server-start";
        private static boolean forcedStop=false; 
+       private static boolean systemShutDown=false;
     static{
                servers = new ArrayList<IServer>();
     }
@@ -81,6 +82,7 @@ public class ServerMain {
                serversLoaded=true;
                Runtime.getRuntime().addShutdownHook(new Thread() {
                        public void run() {
+                               setSystemShutDown(true);
                                stopAllServers();
                        }
                });
@@ -156,7 +158,7 @@ public class ServerMain {
        
        private static boolean hasStopRequested(){
                forcedStop=new File(getServerStopForceFileName()).exists() || 
new File(stopFileNamePrefixForced).exists();
-               return  forcedStop || new 
File(getServerStopFileName()).exists() || new 
File(stopFileNamePrefix).exists(); 
+               return  isSystemShutDown() || forcedStop || new 
File(getServerStopFileName()).exists() || new 
File(stopFileNamePrefix).exists(); 
        }
 
        private static String getServerStopFileName() {
@@ -236,11 +238,11 @@ public class ServerMain {
        }
        private static final int SERVER_STATUS_CHANGE_WAIT_INTERVAL=100;
 
-       public static void waitForServerToStart(IServer server,Integer maxWait) 
throws Exception {
+       private static void waitForServerToStart(IServer server,Integer 
maxWait) throws Exception {
                int count=0;
-               if (server.getStatus()==ServerStatus.STARTING) {
-                       logger.info("Waiting for " + server.getName() + " to 
start...");
-               }
+//             if (server.getStatus()==ServerStatus.STARTING) {
+//                     logger.info("Waiting for " + server.getName() + " to 
start...");
+//             }
                while(server.getStatus()==ServerStatus.STARTING && 
(maxWait==null || count<maxWait)){
                        Thread.sleep(SERVER_STATUS_CHANGE_WAIT_INTERVAL);
                        count+=SERVER_STATUS_CHANGE_WAIT_INTERVAL;
@@ -250,13 +252,13 @@ public class ServerMain {
                }
        }
 
-       public static void waitForServerToStop(IServer server,Integer maxWait) 
throws Exception {
+       private static void waitForServerToStop(IServer server,Integer maxWait) 
throws Exception {
                int count=0;
                if (server.getStatus()==ServerStatus.STOPING) {
                        logger.info("Waiting for " + server.getName() + " to 
stop...");
                }
                //we are doing hasStopRequested() check because while we are 
stuck in the loop to stop there could be a forceStop request 
-               while(server.getStatus()==ServerStatus.STOPING && 
(maxWait==null || count<maxWait) && hasStopRequested() && !forcedStop){
+               while(server.getStatus()==ServerStatus.STOPING && 
(maxWait==null || count<maxWait) && hasStopRequested() && (maxWait!=null || 
!forcedStop)){
                        Thread.sleep(SERVER_STATUS_CHANGE_WAIT_INTERVAL);
                        count+=SERVER_STATUS_CHANGE_WAIT_INTERVAL;
                }
@@ -264,4 +266,12 @@ public class ServerMain {
                        throw new Exception("Error stopping the 
"+server.getName()+"!!!");
                }
        }
+
+       private static boolean isSystemShutDown() {
+               return systemShutDown;
+       }
+
+       private static void setSystemShutDown(boolean systemShutDown) {
+               ServerMain.systemShutDown = systemShutDown;
+       }
 }
\ No newline at end of file

Reply via email to