for (ValueNumber valueNumber : nullValueGuaranteedDerefMap.keySet()) {
for (Map.Entry<ValueNumber, Set<Location>> e  : nullValueGuaranteedDerefMap.entrySet()) { ValueNumber valueNumber = e.getKey();
	private void examineNullValues() throws CFGBuilderException, DataflowAnalysisException {		Set<LocationWhereValueBecomesNull> locationWhereValueBecomesNullSet =			invDataflow.getAnalysis().getLocationWhereValueBecomesNullSet();		// For each value number that is null somewhere in the		// method, collect the set of locations where it becomes null.		// FIXME: we may see some locations that are not guaranteed to be dereferenced (how to fix this?)		Map<ValueNumber, Set<Location>> nullValueAssignmentMap =			new HashMap<ValueNumber, Set<Location>>();		for (LocationWhereValueBecomesNull lwvbn : locationWhereValueBecomesNullSet) {			Set<Location> locationSet = nullValueAssignmentMap.get(lwvbn.getValueNumber());			if (locationSet == null) {				locationSet = new HashSet<Location>();				nullValueAssignmentMap.put(lwvbn.getValueNumber(), locationSet);			}			locationSet.add(lwvbn.getLocation());		}				// Inspect the method for locations where a null value is guaranteed to		// be dereferenced.  Add the dereference locations		Map<ValueNumber, Set<Location>> nullValueGuaranteedDerefMap =			new HashMap<ValueNumber, Set<Location>>();				// Check every location		for (Iterator<Location> i = classContext.getCFG(method).locationIterator(); i.hasNext();) {			Location location = i.next();						checkForUnconditionallyDereferencedNullValues(					nullValueGuaranteedDerefMap,					vnaDataflow.getFactAtLocation(location),					invDataflow.getFactAtLocation(location),					uvdDataflow.getFactAtLocation(location));		}				// Check every non-exception control edge		for (Iterator<Edge> i = classContext.getCFG(method).edgeIterator(); i.hasNext();) {			Edge edge = i.next();			if (!edge.isExceptionEdge()) {				checkForUnconditionallyDereferencedNullValues(						nullValueGuaranteedDerefMap,						vnaDataflow.getFactOnEdge(edge),						invDataflow.getFactOnEdge(edge),						uvdDataflow.getFactOnEdge(edge));			}		}				// Report 		for (ValueNumber valueNumber : nullValueGuaranteedDerefMap.keySet()) {			Set<Location> assignedNullLocationSet = nullValueAssignmentMap.get(valueNumber);			Set<Location> derefLocationSet = nullValueGuaranteedDerefMap.get(valueNumber);						collector.foundGuaranteedNullDeref(assignedNullLocationSet, derefLocationSet, valueNumber);		}	}