for (Iterator<Edge> j = deletedEdgeSet.iterator(); j.hasNext();) { Edge edge = j.next();
for (Edge edge : deletedEdgeSet) {
	public void execute() throws ClassNotFoundException {		Set<Edge> deletedEdgeSet = new HashSet<Edge>();		List<MarkedEdge> markedEdgeList = new LinkedList<MarkedEdge>();		// Mark edges to delete,		// mark edges to set properties of		for (Iterator<Edge> i = cfg.edgeIterator(); i.hasNext();) {			Edge edge = i.next();			if (!edge.isExceptionEdge())				continue;			ExceptionSet exceptionSet = typeDataflow.getEdgeExceptionSet(edge);			if (exceptionSet.isEmpty()) {				// No exceptions are actually thrown on this edge,				// so we can delete the edge.				deletedEdgeSet.add(edge);			} else {				// Some exceptions appear to be thrown on the edge.				// Mark to indicate if any of the exceptions are checked,				// and if any are explicit (checked or explicitly declared				// or thrown unchecked).				boolean someChecked = exceptionSet.containsCheckedExceptions();				boolean someExplicit = exceptionSet.containsExplicitExceptions();				int flags = 0;				if (someChecked) flags |= CHECKED_EXCEPTIONS_FLAG;				if (someExplicit) flags |= EXPLICIT_EXCEPTIONS_FLAG;				markedEdgeList.add(new MarkedEdge(edge, flags));			}		}		// Remove deleted edges		for (Iterator<Edge> j = deletedEdgeSet.iterator(); j.hasNext();) {			Edge edge = j.next();			cfg.removeEdge(edge);			if (STATS) ++numEdgesPruned;		}		// Mark edges		for (Iterator<MarkedEdge> j = markedEdgeList.iterator(); j.hasNext();) {			j.next().apply();		}	}