RFR(XXS): 8214161: java.lang.IllegalAccessError: class jdk.internal.event.X509CertificateEvent (in module java.base) cannot access class jdk.jfr.internal.handlers.EventHandler (in module jdk.jfr) because module java.base does not read module jdk.jfr
    Markus Gronlund 
    markus.gronlund at oracle.com
       
    Thu Nov 22 15:01:26 UTC 2018
    
    
  
Greetings,
Please review the following small fix.
Bug: https://bugs.openjdk.java.net/browse/JDK-8214161 
Webrev: http://cr.openjdk.java.net/~mgronlun/8214161/webrev01/ 
diff -r 0a77b7e41322 -r cec1604a9b89 src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
--- a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp       Thu Nov 22 11:15:53 2018 +0100
+++ b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp       Thu Nov 22 15:18:50 2018 +0100
@@ -447,6 +447,7 @@
   if (registered_symbol == NULL) {
     registered_symbol = SymbolTable::lookup_only(registered_constant, sizeof registered_constant - 1, unused_hash);
     if (registered_symbol == NULL) {
+      untypedEventHandler = true;
       return false;
     }
   }
Description:
Events in module java.base can't refer to types in module "jdk.jfr" before the jdk.jfr module is loaded and valid read edges established.
Unfortunately, there exist an uncovered exit path in the code that leaves the eventHandler field "jdk.jfr"-typed, when it should not be.
Javap output:
Existing:
public final class jdk.internal.event.X509CertificateEvent extends jdk.internal.event.Event 
... 
  private static jdk.jfr.internal.handlers.EventHandler eventHandler; 
    descriptor: Ljdk/jfr/internal/handlers/EventHandler; 
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC 
Fix: 
public final class jdk.internal.event.X509CertificateEvent extends jdk.internal.event.Event 
... 
  private static java.lang.Object eventHandler; 
    descriptor: Ljava/lang/Object; 
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC  
Tests: open/test/jdk/:jdk_jfr
Thanks
Markus
    
    
More information about the hotspot-runtime-dev
mailing list