Repository: cloudstack
Updated Branches:
  refs/heads/4.4-forward ba270efd4 -> 06d8d3a03


CLOUDSTACK-6970: 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/06d8d3a0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/06d8d3a0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/06d8d3a0

Branch: refs/heads/4.4-forward
Commit: 06d8d3a03f7a4efc41c45d9f67fd5b7586a78454
Parents: ba270ef
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:39:30 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/06d8d3a0/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 4da2714..800b782 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -255,15 +255,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