When working on JDK-8114823 I realized that the different GCs handle unloading of strings differently. When fixing that issue I made sure that G1 and Parallel now works the same way. That is, strings are unloaded even if class unloading is disabled (-XX:-ClassUnloading).
Running the test hotspot/test/runtime/interned/SanityTest.java with -XX:-ClassUnloading shows the issue with Serial and ConcMarkSweep.
Running the test hotspot/test/runtime/interned/SanityTest.java with -XX:-ClassUnloading shows the issue with Serial and ConcMarkSweep.