Circular dependencies should not always be avoided. I would avoid them altogether, but stay in the small narrow corners of the system. In general, if the level of data access and the presentation level of a J2EE application is application dependent, I would say that this is bad because it means that everything needs to be compiled at a time, and testing is a nightmare. But this is not a problem if the list data structure and its type of iterator are circular dependent.
Since Findbugs suggests using interfaces to break circular dependency. I. Introduce an interface for at least one type of circle and make other classes use the interface everywhere. Do you need some sample code?
jmg
source share