During review of JDK-8268163 we noticed that there are quite a few cases where G1 may upgrade a young collection to a full collection of some sort; this upgrade is implemented in different places, with different types of upgrades (e.g. first do nothing special apart from the full gc, then clear soft refs only and gc, then do a maximally compacting gc, OR only do a soft-ref clearing full gc and possibly other variants).
Consolidate the reactions on "upgrade" of a full gc possibly in a single code path; maybe also look into whether there is more to refactor.