Sorry, it is a bit confusing as we aren't quite done with the transition from an older form of a -Xpatch to the new form.

The syntax you see in JEP 261 and in the java -X usage output is the new form. That works for modules defined to the platform or application class loaders but doesn't work for modules (like java.base) that are defined to the boot loader. Lois is working on the missing piece in hotspot, it is tracked by JDK-8146448. All the other pieces (in javac and the runtime) are in place.

In the mean-time, the old form still works. The old syntax is -Xpatch:<dir>(:<dir>*) where <dir> is a directory of exploded patches. If you want to override CHM then you would run with -Xpatch:jsr166 where jsr166 contains:

  java.base/java/util/concurrent/ConcurrentHashMap.class

You can use the old syntax with the first usage of -Xpatch, not second or subsequent usages. That is why you see a difference in the -Xpatch:junk behavior when you specify it more than once.

-Alan.

Reply via email to