Hierarchy.isSubtype(className, "java.util.concurrent.Lock")) {
Hierarchy.isSubtype(className, "java.util.concurrent.locks.Lock")) {
		public boolean isResourceClose(BasicBlock basicBlock, InstructionHandle handle, ConstantPoolGen cpg, Lock resource,			ResourceValueFrame frame) throws DataflowAnalysisException {			InvokeInstruction inv = toInvokeInstruction(handle.getInstruction());			if (inv == null)				return false;			String className = inv.getClassName(cpg);			String methodName = inv.getName(cpg);			String methodSig = inv.getSignature(cpg);			ResourceValue topValue = frame.getTopValue();			if (!topValue.isInstance())				return false;			try {				if (methodName.equals("unlock") &&					methodSig.equals("()V") &&					Hierarchy.isSubtype(className, "java.util.concurrent.Lock")) {					return true;				}			} catch (ClassNotFoundException e) {				lookupFailureCallback.reportMissingClass(e);			}			return false;		}