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",