if (actionList == null) {
Instruction ins = handle.getInstruction();
actionList = Collections.emptyList();
if (ins instanceof InvokeInstruction) {
InvokeInstruction inv = (InvokeInstruction) ins;
XMethod invokedMethod = XFactory.createXMethod(inv, cpg);
String signature = invokedMethod.getSignature();
String methodName = invokedMethod.getName();
if (DEBUG_LOOKUP) {
System.out.println("Looking up actions for call to " + invokedMethod);
}
if (invokedMethod.getAnnotationDescriptors().contains(WILL_CLOSE) && methodName.startsWith("close") && signature.endsWith(")V")) {
actionList = Collections.singletonList(ObligationPolicyDatabaseAction.CLEAR);
} else if (signature.indexOf(';') >= -1) {
ReferenceType receiverType = inv.getReferenceType(cpg);
boolean isStatic = inv.getOpcode() == Constants.INVOKESTATIC;
actionList = new LinkedList<ObligationPolicyDatabaseAction>();
database.getActions(receiverType, methodName, signature, isStatic, actionList);
if (actionList.isEmpty()) {