"duplicate class definition" error with static method in jdk.jfr.Event

XMLWordPrintable

    • jfr
    • generic
    • generic

      ADDITIONAL SYSTEM INFORMATION :
      Win 10,
      JDK 11, JDK 18

      A DESCRIPTION OF THE PROBLEM :
      Getting an "duplicate class definition" error when having a static method that returns a super type of the the surrounding type. The method does not need to be called.

      reported in https://bugs.eclipse.org/bugs/show_bug.cgi?id=578077#c5

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :

      run this with Vm Argument -XX:StartFlightRecording:filename=recording.jfr,dumponexit=true -XX:FlightRecorderOptions=stackdepth=-1


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      no warning, no exception
      ACTUAL -
      [0.345s][info][jfr,startup] Started recording 1. No limit specified, using maxsize=250MB as default.
      [0.345s][info][jfr,startup]
      [0.345s][info][jfr,startup] Use jcmd 37408 JFR.dump name=1 to copy recording data to file.
      [0.375s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.377s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.377s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.378s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.378s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.378s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.379s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.379s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.379s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.380s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.380s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.380s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.380s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.381s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.381s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.381s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.381s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.381s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.382s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.382s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.382s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.382s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.383s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.383s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.383s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.383s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.383s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.383s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.384s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.384s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.384s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.384s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.385s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.385s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.385s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.385s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.385s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.386s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.386s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.386s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.386s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.386s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.387s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.387s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.387s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.387s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.387s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.387s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.388s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.388s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.388s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.388s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.388s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.388s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.388s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.389s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.389s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.389s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.389s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.389s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.389s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.389s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.389s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.390s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.390s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.390s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.390s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.390s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.390s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.390s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.391s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.391s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.391s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.391s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.391s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.391s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.391s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.392s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.393s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.393s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.393s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.393s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.393s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.393s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.393s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      [0.393s][warning][jfr,system ] Unexpected error when adding instrumentation for event type <Unknown>
      Exception in thread "main" java.lang.LinkageError: loader 'app' attempted duplicate class definition for p.MyJfrEvent. (p.MyJfrEvent is in unnamed module of loader 'app')
      at java.base/java.lang.ClassLoader.defineClass1(Native Method)
      at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
      at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
      at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
      at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
      at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
      at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
      at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
      at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
      at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
      at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
      at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504)
      at jdk.jfr/jdk.jfr.internal.EventControl.defineSettings(EventControl.java:143)
      at jdk.jfr/jdk.jfr.internal.EventControl.<init>(EventControl.java:134)
      at jdk.jfr/jdk.jfr.internal.MetadataRepository.makeHandler(MetadataRepository.java:183)
      at jdk.jfr/jdk.jfr.internal.MetadataRepository.register(MetadataRepository.java:142)
      at jdk.jfr/jdk.jfr.internal.MetadataRepository.register(MetadataRepository.java:130)
      at jdk.jfr/jdk.jfr.FlightRecorder.register(FlightRecorder.java:136)
      at p.AbstractJfrEvent.<clinit>(AbstractJfrEvent.java)


      ---------- BEGIN SOURCE ----------

      class AbstractJfrEvent extends jdk.jfr.Event {

      static MyJfrEvent createEvent() {
      return new MyJfrEvent();
      }

      public static void main(String[] args) {
      new MyJfrEvent();
      // AbstractJfrEvent.createEvent();
      }
      }

      class MyJfrEvent extends AbstractJfrEvent {
      };
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      remove "createEvent()" from class.


      FREQUENCY : always


            Assignee:
            Unassigned
            Reporter:
            Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: