From bbff5e84ce00c7a40a04c0aedb7cfb7b75f0cae4 Mon Sep 17 00:00:00 2001 From: Marcus Sorensen Date: Tue, 9 Jul 2013 09:37:23 -0600 Subject: [PATCH] CLOUDSTACK-3422 - fix null pointer in usage and action events when deleting resources whose account has been removed --- server/src/com/cloud/event/ActionEventUtils.java | 5 +++++ server/src/com/cloud/event/UsageEventUtils.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/server/src/com/cloud/event/ActionEventUtils.java b/server/src/com/cloud/event/ActionEventUtils.java index a2d490662eb..eb3efedff0e 100755 --- a/server/src/com/cloud/event/ActionEventUtils.java +++ b/server/src/com/cloud/event/ActionEventUtils.java @@ -161,6 +161,11 @@ public class ActionEventUtils { Map eventDescription = new HashMap(); Account account = _accountDao.findById(accountId); User user = _userDao.findById(userId); + // if account has been deleted, this might be called during cleanup of resources and results in null pointer + if (account == null) + return; + if (user == null) + return; eventDescription.put("user", user.getUuid()); eventDescription.put("account", account.getUuid()); eventDescription.put("event", eventType); diff --git a/server/src/com/cloud/event/UsageEventUtils.java b/server/src/com/cloud/event/UsageEventUtils.java index 54012443848..2d92fae66f9 100644 --- a/server/src/com/cloud/event/UsageEventUtils.java +++ b/server/src/com/cloud/event/UsageEventUtils.java @@ -124,6 +124,10 @@ public class UsageEventUtils { Account account = _accountDao.findById(accountId); DataCenterVO dc = _dcDao.findById(zoneId); + // if account has been deleted, this might be called during cleanup of resources and results in null pointer + if (account == null) + return; + Event event = new Event(ManagementServer.Name, EventCategory.USAGE_EVENT.getName(), usageEventType, resourceType, resourceUUID);