A CollectionLoadContext is created for an empty ResultSet but is not registered with LoadContexts. This causes CollectionLoadContexts.endLoadingCollection() too return early without removing the CollectionLoadContext().
As a result, the CollectionLoadContext is not removed until PersistenceContext.clear() is called which calls LoadContexts.cleanup(). When a CollectionLoadContext is still in present, LoadContexts.cleanup() writes a warning to the log, as mentioned in HHH-2631.
This is reproduced by org.hibernate.engine.loading.MergeTest.testNoExtraUpdatesOnMergeWithCollection() as well as other unit tests.
Fixed in trunk / 3.2