try { ValueNumberDataflow vnaDataflow = classContext.getValueNumberDataflow(method); ValueNumberFrame vnaFrameAtLocation= vnaDataflow.getFactAtLocation(location);
	public void foundNullDeref(Location location, ValueNumber valueNumber, IsNullValue refValue) {		WarningPropertySet propertySet = new WarningPropertySet();				boolean onExceptionPath = refValue.isException();		if (onExceptionPath) {			propertySet.addProperty(GeneralWarningProperty.ON_EXCEPTION_PATH);		}		LocalVariableAnnotation variable = null;		try {			ValueNumberDataflow vnaDataflow = classContext.getValueNumberDataflow(method);			ValueNumberFrame vnaFrameAtLocation= vnaDataflow.getFactAtLocation(location);			if (DEBUG) {				System.out.println("Dereference at " + location);				System.out.println("Value number frame: " + vnaFrameAtLocation);			}			if (vnaFrameAtLocation != null && !vnaFrameAtLocation.isBottom() && !vnaFrameAtLocation.isTop())			for(int i = 0; i < vnaFrameAtLocation.getNumLocals(); i++) {				if (valueNumber.equals(vnaFrameAtLocation.getValue(i))) {					InstructionHandle handle = location.getHandle();					int position1 = handle.getPrev().getPosition();					int position2 = handle.getPosition();					variable = LocalVariableAnnotation.getLocalVariableAnnotation(method, i, position1, position2);					if (variable != null) break;				}			}		} catch (DataflowAnalysisException e) {			// TODO Auto-generated catch block			e.printStackTrace();		} catch (CFGBuilderException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}				if (refValue.isDefinitelyNull()) {			String type = onExceptionPath ? "NP_ALWAYS_NULL_EXCEPTION" : "NP_ALWAYS_NULL";			int priority = onExceptionPath ? NORMAL_PRIORITY : HIGH_PRIORITY;			reportNullDeref(propertySet, classContext, method, location, type, priority, null);		} else if (refValue.isNullOnSomePath()) {			String type =  "NP_NULL_ON_SOME_PATH";			int priority =  NORMAL_PRIORITY;			if (onExceptionPath)  type = "NP_NULL_ON_SOME_PATH_EXCEPTION";			else if (refValue.isReturnValue())				type = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE";			else if (refValue.isParamValue()) {				if (method.getName().equals("equals") 						&& method.getSignature().equals("(Ljava/lang/Object;)Z"))					type = "NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT";				else				type = "NP_ARGUMENT_MIGHT_BE_NULL";			}			if (DEBUG) System.out.println("Reporting null on some path: value=" + refValue);			reportNullDeref(propertySet, classContext, method, location, type, priority, variable);		}	}