< prev index next >

src/jdk.jfr/share/classes/jdk/jfr/internal/instrument/JDKEvents.java

Print this page

        

*** 29,69 **** import java.util.List; import jdk.internal.module.Modules; import jdk.jfr.Event; import jdk.jfr.FlightRecorder; ! import jdk.jfr.events.ActiveRecordingEvent; ! import jdk.jfr.events.ActiveSettingEvent; ! import jdk.jfr.events.ErrorThrownEvent; ! import jdk.jfr.events.ExceptionStatisticsEvent; ! import jdk.jfr.events.ExceptionThrownEvent; ! import jdk.jfr.events.FileForceEvent; ! import jdk.jfr.events.FileReadEvent; ! import jdk.jfr.events.FileWriteEvent; ! import jdk.jfr.events.SocketReadEvent; ! import jdk.jfr.events.SocketWriteEvent; import jdk.jfr.internal.JVM; import jdk.jfr.internal.LogLevel; import jdk.jfr.internal.LogTag; import jdk.jfr.internal.Logger; import jdk.jfr.internal.RequestEngine; import jdk.jfr.internal.SecuritySupport; import jdk.jfr.internal.Utils; public final class JDKEvents { private static final Class<?>[] eventClasses = { FileForceEvent.class, FileReadEvent.class, FileWriteEvent.class, SocketReadEvent.class, SocketWriteEvent.class, ExceptionThrownEvent.class, ExceptionStatisticsEvent.class, ErrorThrownEvent.class, ActiveSettingEvent.class, ! ActiveRecordingEvent.class }; // This is a list of the classes with instrumentation code that should be applied. private static final Class<?>[] instrumentationClasses = new Class<?>[] { FileInputStreamInstrumentor.class, --- 29,71 ---- import java.util.List; import jdk.internal.module.Modules; import jdk.jfr.Event; import jdk.jfr.FlightRecorder; ! import jdk.jfr.events.*; import jdk.jfr.internal.JVM; import jdk.jfr.internal.LogLevel; import jdk.jfr.internal.LogTag; import jdk.jfr.internal.Logger; import jdk.jfr.internal.RequestEngine; import jdk.jfr.internal.SecuritySupport; import jdk.jfr.internal.Utils; public final class JDKEvents { + private static final Class<?>[] mirrorEventClasses = { + CertificateChainEvent.class, + TLSHandshakeEvent.class, + SecurityPropertyEvent.class, + X509CertEvent.class + }; + private static final Class<?>[] eventClasses = { FileForceEvent.class, FileReadEvent.class, FileWriteEvent.class, SocketReadEvent.class, SocketWriteEvent.class, ExceptionThrownEvent.class, ExceptionStatisticsEvent.class, ErrorThrownEvent.class, ActiveSettingEvent.class, ! ActiveRecordingEvent.class, ! jdk.internal.event.CertificateChainEvent.class, ! jdk.internal.event.SecurityPropertyEvent.class, ! jdk.internal.event.TLSHandshakeEvent.class, ! jdk.internal.event.X509CertEvent.class }; // This is a list of the classes with instrumentation code that should be applied. private static final Class<?>[] instrumentationClasses = new Class<?>[] { FileInputStreamInstrumentor.class,
*** 88,97 **** --- 90,102 ---- Module javaBaseModule = Object.class.getModule(); Modules.addReads(javaBaseModule, jdkJfrModule); Modules.addExports(jdkJfrModule, Utils.EVENTS_PACKAGE_NAME, javaBaseModule); Modules.addExports(jdkJfrModule, Utils.INSTRUMENT_PACKAGE_NAME, javaBaseModule); Modules.addExports(jdkJfrModule, Utils.HANDLERS_PACKAGE_NAME, javaBaseModule); + for (Class<?> mirrorEventClass : mirrorEventClasses) { + SecuritySupport.registerMirror(((Class<? extends Event>)mirrorEventClass)); + } for (Class<?> eventClass : eventClasses) { SecuritySupport.registerEvent((Class<? extends Event>) eventClass); } initializationTriggered = true; FlightRecorder.addPeriodicEvent(ExceptionStatisticsEvent.class, emitExceptionStatistics);
< prev index next >