There is a race condition here that the collector may have lost values.  The collector is iterated on in the constructor of DefaultCollector and then cleared afterwards.  However the mapper could be adding to the collector in between that period.