-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
None
-
None
The finally block of the java is not able to trigger when Byteman rule throws an exception.
public String func() throws OperationFailedException
{
boolean lAlreadyOwned = lockCacheIfNotOwned(); // Lock the resources
try
finally
{ unlockCache(lAlreadyOwned); }}
Rule:
RULE catchExp.LRUSPRCache.getAccountBySubscriptionId.GenExp
CLASS com.alcatel.tpapps.spr.csb.server.LRUSPRCache
METHOD getAccountBySubscriptionId(java.util.Collection, com.alcatel.tpapps.spr.par.Account)
NOCOMPILE
AFTER WRITE $lSPRResult
IF true
DO System.out.println("[BMAN] Gen Exception: Result [" + $lSPRResult.getSprResultCode() + "] Account: " + $lSPRResult.getAccount().getAccountId());
traceStack("Caller Stack: ");
THROW new java.lang.NullPointerException();
ENDRULE
This resulted in the resources remained blocked for ever until the application is restarted.