[rhq] Branch 'release/jon3.1.x' - modules/plugins

snegrea snegrea at fedoraproject.org
Wed Aug 29 08:46:55 UTC 2012


 modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java     |   31 +++--
 modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java |    7 -
 modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java   |   56 ++++++----
 3 files changed, 64 insertions(+), 30 deletions(-)

New commits:
commit 91db63a06a0612349faf89678884b6b9150b411f
Author: Stefan Negrea <snegrea at redhat.com>
Date:   Wed Aug 29 03:46:42 2012 -0500

    [BZ 847674] Updated all the wait methods for reload, shutdown, and restart to have the same design. All the methods now take into account possible exceptions for the test operation sent to the application server.
    (cherry picked from commit e6e91058f3ac76c6458847bd66a8ee5c9c24493e)

diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
index 27b1133..98a46d2 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
@@ -241,25 +241,36 @@ public abstract class BaseServerComponent<T extends ResourceComponent<?>> extend
         return startServer();
     }
 
-    protected boolean waitUntilDown(OperationResult tmp) throws InterruptedException {
+    protected boolean waitUntilDown() throws InterruptedException {
         boolean down=false;
         int count=0;
+
         while (!down) {
             Operation op = new ReadAttribute(new Address(),"release-version");
-            Result res = getASConnection().execute(op);
-            if (!res.isSuccess()) { // If op succeeds, server is not down
-                down=true;
-            } else if (count > 20) {
-                tmp.setErrorMessage("Was not able to shut down the server");
-                return true;
+
+            try{
+                Result res = getASConnection().execute(op);
+                if (!res.isSuccess()) { // If op succeeds, server is not down
+                    down = true;
+                } else if (count > 20) {
+                    break;
+                }
+            } catch (Exception e) {
+                down = true;
             }
+
             if (!down) {
-                Thread.sleep(1000); // Wait 1s
+                try {
+                    Thread.sleep(1000); // Wait 1s
+                } catch (InterruptedException e) {
+                    // ignore
+                }
             }
             count++;
         }
-        log.debug("waitUntilDown: Used " + count + " delay round(s) to shut down");
-        return false;
+
+        log.debug("waitUntilDown: Used " + count + " delay round(s) to shut down. Server down=" + down);
+        return down;
     }
 
     /**
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
index 565add2..7ea12b9 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
@@ -92,8 +92,11 @@ public class HostControllerComponent<T extends ResourceComponent<?>> extends Bas
             Result res = getASConnection().execute(op);
             operationResult = postProcessResult(name, res);
 
-            waitUntilDown(operationResult);
-
+            if (waitUntilDown()) {
+                operationResult.setSimpleResult("Success");
+            } else {
+                operationResult.setErrorMessage("Was not able to shut down the server.");
+            }
         } else if (name.equals("installRhqUser")) {
             operationResult = installManagementUser(parameters, pluginConfiguration);
         } else {
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java
index 573742e..778d127 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASComponent.java
@@ -163,39 +163,59 @@ public class StandaloneASComponent<T extends ResourceComponent<?>> extends BaseS
 
         OperationResult operationResult = postProcessResult(name, res);
 
-        if (name.equals("shutdown"))
-            waitUntilDown(operationResult);
+        if (name.equals("shutdown")) {
+            if (waitUntilDown()) {
+                operationResult.setSimpleResult("Success");
+            } else {
+                operationResult.setErrorMessage("Was not able to shut down the server.");
+            }
+        }
 
-        if (name.equals("reload"))
-            waitUntilReloaded(operationResult);
+        if (name.equals("reload")) {
+            if (waitUntilReloaded()) {
+                operationResult.setSimpleResult("Success");
+            } else {
+                operationResult.setErrorMessage("Was not able to reload the server.");
+            }
+        }
 
         context.getAvailabilityContext().requestAvailabilityCheck();
 
         return operationResult;
     }
 
-    private void waitUntilReloaded(OperationResult operationResult) {
+    private boolean waitUntilReloaded() {
         boolean reloaded = false;
         int count = 0;
+
         while (!reloaded) {
-            try {
-                Thread.sleep(2000); // Wait 2s
-            } catch (InterruptedException e) {
-                // Ignore
+            Operation op = new ReadAttribute(new Address(), "release-version");
+            try{
+                Result res = getASConnection().execute(op);
+                if (res.isSuccess() && !res.isReloadRequired()) {
+                    reloaded = true;
+                } else if (count > 20) {
+                    break;
+                }
+            } catch (Exception e) {
+                //do absolutely nothing
+                //if an exception is thrown that means the server is still reloading, so consider this
+                //a single failed attempt, equivalent to res.isSuccess == false
             }
 
-            Operation op = new ReadAttribute(new Address(), "release-version");
-            Result res = getASConnection().execute(op);
-            if (res.isSuccess() && !res.isReloadRequired()) {
-                reloaded = true;
-            } else if (count > 20) {
-                operationResult.setErrorMessage("Was not able to reload the server");
-                return;
+            if (!reloaded) {
+                try {
+                    Thread.sleep(1000); // Wait 1s
+                } catch (InterruptedException e) {
+                    // ignore
+                }
             }
             count++;
         }
-        log.debug("waitUntilReloaded: Used " + count + " delay round(s) to reload");
-        return;
+
+        log.debug("waitUntilReloaded: Used " + count + " delay round(s) to reload. Reload=" + reloaded);
+
+        return reloaded;
     }
 
     @Override




More information about the rhq-commits mailing list