private boolean removeObsoleteReferencesFromMapType(MapFieldValue map, Map<Annotation, Annotation> selectedAnnotations, boolean removeIfPresent) {
        Iterator valueIt = map.values().iterator();
        while (valueIt.hasNext()) {
            FieldValue fValue = (FieldValue) valueIt.next();
            if (removeObsoleteReferencesFromFieldValue(fValue, selectedAnnotations, removeIfPresent)) {
                valueIt.remove();
            }
        }
        return false;
    }
Ensures consistency of the tree in case SpanNodes have been removed, and there are still
Annotations pointing to them. This method has a maximum upper bound of O(3nm), where n is the
total number of Annotations, and m is the number of SpanNodes that had been removed from the tree.
The lower bound is Omega(n), if no SpanNodes had been removed from the tree.
document/src/main/java/com/yahoo/document/annotation/SpanTree.java