LinkedList<Duct> predecessors = new LinkedList<Duct>( Graphs.predecessorListOf( ductGraph, current ) );
ListIterator<Duct> iterator = predecessors.listIterator();
while( iterator.hasNext() )
{
Duct successor = iterator.next();
if( successor == getTAIL() )
throw new IllegalStateException( "TAIL may not be successor" );
if( successor == getHEAD() ) // head is not included, its just a marker