final Iterator<CrosstabDetail> detailsFromBuilder = getDetails().iterator();
final Iterator<CrosstabEditSupport.DetailsDefinition> detailsFromPast = details.values().iterator();
while (detailsFromBuilder.hasNext() && detailsFromPast.hasNext())
{
final CrosstabDetail next = detailsFromBuilder.next();
final CrosstabDetail detail = detailsFromPast.next().createDetail();
if (ObjectUtilities.equal(next, detail) == false)
{
logger.debug(String.format("Details do not match up: [%s] vs [%s]", next, detail));
detailsChanged = true;
return true;