New ClassAds provide an iterator via the begin() and end() methods to traverse all of the attributes in the ad. The iterator doesn't handle any chained ad.

NextNameOriginal() is called in MergeClassAd(), which is called by code that uses chained ads. MergeClassAd() appears to do the wrong thing if the merge_from ad is chained and has the same attribute (but different values) in parent and child.

NextNameOriginal() is also called by the schedd's dollarDollarExpand(), which deals with chained ads.

NextNameOriginal() is also called by FILEXML::file_newEvent(), which is called by the schedd's AppendHistory(), which deals with chained ads.

Developer time: 1-2 days to deal with tricky callsites