Sorry, I just noticed the map value is a set, not a string, so ignore previous question. But IIUC you've changed the behavior, such that in the original version of the code the set (value of failedPredicateMap) always had size one, but now it can have size two? 