code: protected void recycleData() {
  		for (int i = 0; i < nodes.size(); i++) {
  			SquareNode n = nodes.get(i);
  			for (int j = 0; j < n.edges.length; j++) {
  				if( n.edges[j] != null ) {
  					graph.detachEdge(n.edges[j]);
  				}
  			}
  		}
  		for (int i = 0; i < nodes.size(); i++) {
  			SquareNode n = nodes.get(i);
  			for (int j = 0; j < n.edges.length; j++) {
  				if( n.edges[j] != null )
  					throw new RuntimeException("BUG!");
  			}
  		}
  
  		nodes.reset();
  
  		for (int i = 0; i < clusters.size; i++) {
  			clusters.get(i).clear();
  		}
  		clusters.reset();
  	}
docs: Reset and recycle data structures from the previous run