From 1a034d168deed4187ebb40215c1dc217778a66d1 Mon Sep 17 00:00:00 2001 From: Patrick Dube Date: Thu, 8 Dec 2016 13:26:46 -0500 Subject: [PATCH] CLOUDSTACK-9656: Preventing autoboxing NPE in Usage by setting a default role when not found --- .../schema/src/com/cloud/usage/dao/UsageDaoImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/engine/schema/src/com/cloud/usage/dao/UsageDaoImpl.java b/engine/schema/src/com/cloud/usage/dao/UsageDaoImpl.java index 39f57df714e..626b8ccf2be 100644 --- a/engine/schema/src/com/cloud/usage/dao/UsageDaoImpl.java +++ b/engine/schema/src/com/cloud/usage/dao/UsageDaoImpl.java @@ -32,6 +32,7 @@ import com.cloud.utils.db.TransactionLegacy; import com.cloud.utils.db.TransactionStatus; import com.cloud.utils.exception.CloudRuntimeException; +import org.apache.cloudstack.acl.RoleType; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -113,7 +114,14 @@ public class UsageDaoImpl extends GenericDaoBase implements Usage pstmt.setLong(1, acct.getId()); pstmt.setString(2, acct.getAccountName()); pstmt.setShort(3, acct.getType()); - pstmt.setLong(4, acct.getRoleId()); + + //prevent autoboxing NPE by defaulting to User role + if(acct.getRoleId() == null){ + pstmt.setLong(4, RoleType.User.getId()); + }else{ + pstmt.setLong(4, acct.getRoleId()); + } + pstmt.setLong(5, acct.getDomainId()); Date removed = acct.getRemoved();