IsNullValue refValue = frame.getValue(frame.getNumSlots() - consumed);  boolean onExceptionPath = refValue.isException(); if (refValue.isDefinitelyNull()) { String type = onExceptionPath ? "NP_ALWAYS_NULL_EXCEPTION" : "NP_ALWAYS_NULL"; int priority = onExceptionPath ? LOW_PRIORITY : HIGH_PRIORITY; reportNullDeref(classContext, method, exceptionThrowerHandle, type, priority); } else if (refValue.isNullOnSomePath()) { String type = onExceptionPath ? "NP_NULL_ON_SOME_PATH_EXCEPTION" : "NP_NULL_ON_SOME_PATH"; int priority = onExceptionPath ? LOW_PRIORITY : NORMAL_PRIORITY; reportNullDeref(classContext, method, exceptionThrowerHandle, type, priority);
if (frame.isValid()) {  IsNullValue refValue = frame.getValue(frame.getNumSlots() - consumed);  boolean onExceptionPath = refValue.isException(); if (refValue.isDefinitelyNull()) { String type = onExceptionPath ? "NP_ALWAYS_NULL_EXCEPTION" : "NP_ALWAYS_NULL"; int priority = onExceptionPath ? LOW_PRIORITY : HIGH_PRIORITY; reportNullDeref(classContext, method, exceptionThrowerHandle, type, priority); } else if (refValue.isNullOnSomePath()) { String type = onExceptionPath ? "NP_NULL_ON_SOME_PATH_EXCEPTION" : "NP_NULL_ON_SOME_PATH"; int priority = onExceptionPath ? LOW_PRIORITY : NORMAL_PRIORITY; reportNullDeref(classContext, method, exceptionThrowerHandle, type, priority); }
	private void analyzeNullCheck(ClassContext classContext, Method method, IsNullValueDataflow invDataflow,		BasicBlock basicBlock)		throws DataflowAnalysisException {		// Look for null checks where the value checked is definitely		// null or null on some path.		InstructionHandle exceptionThrowerHandle = basicBlock.getExceptionThrower();		Instruction exceptionThrower = exceptionThrowerHandle.getInstruction();		// Figure out where the reference operand is in the stack frame.		int consumed = exceptionThrower.consumeStack(classContext.getConstantPoolGen());		if (consumed == Constants.UNPREDICTABLE)			throw new DataflowAnalysisException("Unpredictable stack consumption for " + exceptionThrower);		// Get the stack values at entry to the null check.		IsNullValueFrame frame = invDataflow.getStartFact(basicBlock);		// Could the reference be null?		IsNullValue refValue = frame.getValue(frame.getNumSlots() - consumed);		boolean onExceptionPath = refValue.isException();		if (refValue.isDefinitelyNull()) {			String type = onExceptionPath ? "NP_ALWAYS_NULL_EXCEPTION" : "NP_ALWAYS_NULL";			int priority = onExceptionPath ? LOW_PRIORITY : HIGH_PRIORITY;			reportNullDeref(classContext, method, exceptionThrowerHandle, type, priority);		} else if (refValue.isNullOnSomePath()) {			String type = onExceptionPath ? "NP_NULL_ON_SOME_PATH_EXCEPTION" : "NP_NULL_ON_SOME_PATH";			int priority = onExceptionPath ? LOW_PRIORITY : NORMAL_PRIORITY;			reportNullDeref(classContext, method, exceptionThrowerHandle, type, priority);		}	}