Repository: cloudstack
Updated Branches:
  refs/heads/master 5638c493f -> 60f4203cb


Protect event interpretion from causing NPE exception


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/60f4203c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/60f4203c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/60f4203c

Branch: refs/heads/master
Commit: 60f4203cbc27fe637059a4575caea1b0497ea5dd
Parents: 5638c49
Author: Kelven Yang <kelv...@gmail.com>
Authored: Thu May 29 09:35:03 2014 -0700
Committer: Kelven Yang <kelv...@gmail.com>
Committed: Fri Jun 20 10:16:04 2014 -0700

----------------------------------------------------------------------
 server/src/com/cloud/api/ApiServer.java | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/60f4203c/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java 
b/server/src/com/cloud/api/ApiServer.java
index 90be76d..2ce6281 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -257,15 +257,20 @@ public class ApiServer extends ManagerBase implements 
HttpRequestHandler, ApiSer
 
         // Get the event type from the cmdInfo json string
         String info = job.getCmdInfo();
-        String cmdEventType;
-        if (info == null) {
-            cmdEventType = "unknown";
-        } else {
+        String cmdEventType = "unknown";
+        if (info != null) {
             String marker = "\"cmdEventType\"";
             int begin = info.indexOf(marker);
-            cmdEventType = info.substring(begin + marker.length() + 2, 
info.indexOf(",", begin) - 1);
-        }
+            if (begin >= 0) {
+                cmdEventType = info.substring(begin + marker.length() + 2, 
info.indexOf(",", begin) - 1);
 
+                if (s_logger.isDebugEnabled())
+                    s_logger.debug("Retrieved cmdEventType from job info: " + 
cmdEventType);
+            } else {
+                if (s_logger.isDebugEnabled())
+                    s_logger.debug("Unable to locate cmdEventType marker in 
job info. publish as unknown event");
+            }
+        }
         // For some reason, the instanceType / instanceId are not abstract, 
which means we may get null values.
         org.apache.cloudstack.framework.events.Event event = new 
org.apache.cloudstack.framework.events.Event(
                 "management-server",

Reply via email to