Module jdk.jfr

# Package jdk.jfr.consumer

This package contains classes for consuming Flight Recorder data.

In the following example, the program prints a histogram of all method samples in a recording.

     public static void main(String[] args) throws IOException {
         if (args.length != 1) {
             System.err.println("Must specify a recording file.");
             return;
         }

         RecordingFile.readAllEvents(Path.of(args[0])).stream()
             .filter(e -> e.getEventType().getName().equals("jdk.ExecutionSample"))
             .map(e -> e.getStackTrace())
             .filter(s -> s != null)
             .map(s -> s.getFrames().get(0))
             .filter(f -> f.isJavaFrame())
             .map(f -> f.getMethod())
             .collect(
                 Collectors.groupingBy(m -> m.getType().getName() + "." + m.getName() + " " + m.getDescriptor(),
                 Collectors.counting()))
             .entrySet()
             .stream()
             .sorted((a, b) -> b.getValue().compareTo(a.getValue()))
             .forEach(e -> System.out.printf("%8d %s\n", e.getValue(), e.getKey()));
     }

Null-handling

All methods define whether they accept or return `null` in the Javadoc. Typically this is expressed as `"not null"`. If a `null` parameter is used where it is not allowed, a `java.lang.NullPointerException` is thrown. If a `null` parameters is passed to a method that throws other exceptions, such as `java.io.IOException`, the `java.lang.NullPointerException` takes precedence, unless the Javadoc for the method explicitly states how `null` is handled, i.e. by throwing `java.lang.IllegalArgumentException`.

Since:
  9

- Class Summary
  Class | Description
  --- | ---
  RecordedClass | A recorded Java type, such as a class or an interface.
  RecordedClassLoader | A recorded Java class loader.
  RecordedEvent | A recorded event.
  RecordedFrame | A recorded frame in a stack trace.
  RecordedMethod | A recorded method.
  RecordedObject | A complex data type that consists of one or more fields.
  RecordedStackTrace | A recorded stack trace.
  RecordedThread | A recorded thread.
  RecordedThreadGroup | A recorded Java thread group.
  RecordingFile | A recording file.