Alan spotted this potential issue:
Also, we need to think about the race where one thread attempts to define a module containing a package at around the same time that another thread is loading a class (the first class) in the same package/loader. The JPLIS agent will be triggered by the later but, I think, random as to whether it will invoke the ClassFileTransformer with the loader's unnamed module or the newly defined named module. I don't think this is a concern for the JVM_ entry point, but I think will surface once we start to build on it.
. . .
Back to the race issue that I mentioned, maybe we can create a separate issue for that. I suspect this will require a few changes in the runtime to eagerly record.