H all, consider the folowing please
A network is created and used privateNetwork = _networkMgr.createGuestNetwork(ntwkOffFinal.getId(), networkName, displayText, gateway, cidr, uriString, null, owner, null, pNtwk, pNtwk.getDataCenterId(), ACLType.Account, null, vpcId, null, null, true, null); s_logger.debug("Created private network " + privateNetwork); the next line[3987] in the logic is (there is an else block in between): PrivateIpVO privateIp = _privateIpDao.findByIpAndSourceNetworkIdAndVpcId(privateNetwork.getId(), startIp, vpcId); the sequence logs as follows: log succes return of npe log the roll back log an npe on the object just returned and logged 2014-04-30 21:38:37,417 DEBUG [c.c.n.NetworkServiceImpl] (catalina-exec-17:ctx-d1365378 ctx-664fada1 ctx-e0adfbee) Created private network Ntwk[cf4d60e1-9d4a-46de-85bc-910a6ea44024|Guest|5] 2014-04-30 21:38:37,433 DEBUG [c.c.u.d.T.Transaction] (catalina-exec-17:ctx-d1365378 ctx-664fada1 ctx-e0adfbee) Rolling back the transaction: Time = 209 Name = catalina-exec-17; called by -TransactionLegacy.rollback:903-TransactionLegacy.removeUpTo:846-TransactionLegacy.close:670-Transaction.execute:41-NetworkServiceImpl.createPrivateNetwork:3964-NativeMethodAccessorImpl.invoke0:-2-NativeMethodAccessorImpl.invoke:-1-DelegatingMethodAccessorImpl.invoke:-1-Method.invoke:-1-AopUtils.invokeJoinpointUsingReflection:317-ReflectiveMethodInvocation.invokeJoinpoint:183-ReflectiveMethodInvocation.proceed:150 2014-04-30 21:38:37,452 ERROR [c.c.a.ApiServer] (catalina-exec-17:ctx-d1365378 ctx-664fada1 ctx-e0adfbee) unhandled exception executing api command: [Ljava.lang.String;@1925edc3 java.lang.NullPointerException at com.cloud.network.NetworkServiceImpl$11.doInTransaction(NetworkServiceImpl.java:3987) ... it can of course be the _privateIpDao but I am trusting spring and the class strucutre here. there is no logic between the two lines. so privateNetwork must be the null involved in the npe. It has just been logged and *after that* rolled back. So in parallel to the network object being successfully returned the transaction is being rolled back. What evil genius has been at work here??? Or how stupid am I? I am sure similar issues must have been discussed earlier. any pointers? How can/Should I make sure an object returned is indeed valid? thanks, -- Daan