final class jdk.jfr.internal.jfc.JFCParser
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.jfc.JFCParser
  super_class: java.lang.Object
{
  static final java.lang.String FILE_EXTENSION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: ".jfc"

  private static final int MAXIMUM_FILE_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1048576

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.jfc.JFCParser this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.jfr.internal.jfc.JFCParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/jfc/JFCParser;

  public static jdk.jfr.Configuration createConfiguration(java.lang.String, java.io.Reader);
    descriptor: (Ljava/lang/String;Ljava/io/Reader;)Ljdk/jfr/Configuration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.io.Reader reader
         0: .line 49
            aload 0 /* name */
            aload 1 /* reader */
            invokestatic jdk.jfr.internal.jfc.JFCParser.readContent:(Ljava/io/Reader;)Ljava/lang/String;
            invokestatic jdk.jfr.internal.jfc.JFCParser.createConfiguration:(Ljava/lang/String;Ljava/lang/String;)Ljdk/jfr/Configuration;
            areturn
        end local 1 // java.io.Reader reader
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    name  Ljava/lang/String;
            0    1     1  reader  Ljava/io/Reader;
    Exceptions:
      throws java.io.IOException, java.text.ParseException
    MethodParameters:
        Name  Flags
      name    
      reader  

  public static jdk.jfr.Configuration createConfiguration(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljdk/jfr/Configuration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.String content
         0: .line 54
            new jdk.jfr.internal.jfc.JFCParserHandler
            dup
            invokespecial jdk.jfr.internal.jfc.JFCParserHandler.<init>:()V
            astore 2 /* ch */
        start local 2 // jdk.jfr.internal.jfc.JFCParserHandler ch
         1: .line 55
            aload 1 /* content */
            aload 2 /* ch */
            invokestatic jdk.jfr.internal.jfc.JFCParser.parseXML:(Ljava/lang/String;Ljdk/jfr/internal/jfc/JFCParserHandler;)V
         2: .line 56
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 0 /* name */
            aload 2 /* ch */
            getfield jdk.jfr.internal.jfc.JFCParserHandler.label:Ljava/lang/String;
            aload 2 /* ch */
            getfield jdk.jfr.internal.jfc.JFCParserHandler.description:Ljava/lang/String;
            aload 2 /* ch */
            getfield jdk.jfr.internal.jfc.JFCParserHandler.provider:Ljava/lang/String;
            aload 2 /* ch */
            getfield jdk.jfr.internal.jfc.JFCParserHandler.settings:Ljava/util/Map;
            aload 1 /* content */
            invokevirtual jdk.jfr.internal.PrivateAccess.newConfiguration:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljdk/jfr/Configuration;
         3: areturn
        end local 2 // jdk.jfr.internal.jfc.JFCParserHandler ch
         4: .line 57
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 2 /* iae */
        start local 2 // java.lang.IllegalArgumentException iae
         5: .line 58
            new java.text.ParseException
            dup
            aload 2 /* iae */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            iconst_m1
            invokespecial java.text.ParseException.<init>:(Ljava/lang/String;I)V
            athrow
        end local 2 // java.lang.IllegalArgumentException iae
         6: .line 59
      StackMap locals:
      StackMap stack: jdk.internal.org.xml.sax.SAXException
            astore 2 /* e */
        start local 2 // jdk.internal.org.xml.sax.SAXException e
         7: .line 60
            new java.text.ParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Error reading JFC file. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual jdk.internal.org.xml.sax.SAXException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_m1
            invokespecial java.text.ParseException.<init>:(Ljava/lang/String;I)V
            astore 3 /* pe */
        start local 3 // java.text.ParseException pe
         8: .line 61
            aload 3 /* pe */
            aload 2 /* e */
            invokevirtual java.text.ParseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         9: .line 62
            aload 3 /* pe */
            athrow
        end local 3 // java.text.ParseException pe
        end local 2 // jdk.internal.org.xml.sax.SAXException e
        end local 1 // java.lang.String content
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     name  Ljava/lang/String;
            0   10     1  content  Ljava/lang/String;
            1    4     2       ch  Ljdk/jfr/internal/jfc/JFCParserHandler;
            5    6     2      iae  Ljava/lang/IllegalArgumentException;
            7   10     2        e  Ljdk/internal/org/xml/sax/SAXException;
            8   10     3       pe  Ljava/text/ParseException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.IllegalArgumentException
           0     3       6  Class jdk.internal.org.xml.sax.SAXException
    Exceptions:
      throws java.io.IOException, java.text.ParseException
    MethodParameters:
         Name  Flags
      name     
      content  

  private static void parseXML(java.lang.String, jdk.jfr.internal.jfc.JFCParserHandler);
    descriptor: (Ljava/lang/String;Ljdk/jfr/internal/jfc/JFCParserHandler;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.String content
        start local 1 // jdk.jfr.internal.jfc.JFCParserHandler ch
         0: .line 67
            new java.io.CharArrayReader
            dup
            aload 0 /* content */
            invokevirtual java.lang.String.toCharArray:()[C
            invokespecial java.io.CharArrayReader.<init>:([C)V
            astore 2 /* r */
        start local 2 // java.io.CharArrayReader r
         1: .line 68
            new jdk.internal.util.xml.impl.SAXParserImpl
            dup
            invokespecial jdk.internal.util.xml.impl.SAXParserImpl.<init>:()V
            astore 3 /* parser */
        start local 3 // jdk.internal.util.xml.SAXParser parser
         2: .line 69
            aload 3 /* parser */
            new jdk.internal.org.xml.sax.InputSource
            dup
            aload 2 /* r */
            invokespecial jdk.internal.org.xml.sax.InputSource.<init>:(Ljava/io/Reader;)V
            aload 1 /* ch */
            invokevirtual jdk.internal.util.xml.SAXParser.parse:(Ljdk/internal/org/xml/sax/InputSource;Ljdk/internal/org/xml/sax/helpers/DefaultHandler;)V
         3: .line 70
            return
        end local 3 // jdk.internal.util.xml.SAXParser parser
        end local 2 // java.io.CharArrayReader r
        end local 1 // jdk.jfr.internal.jfc.JFCParserHandler ch
        end local 0 // java.lang.String content
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  content  Ljava/lang/String;
            0    4     1       ch  Ljdk/jfr/internal/jfc/JFCParserHandler;
            1    4     2        r  Ljava/io/CharArrayReader;
            2    4     3   parser  Ljdk/internal/util/xml/SAXParser;
    Exceptions:
      throws jdk.internal.org.xml.sax.SAXException, java.io.IOException
    MethodParameters:
         Name  Flags
      content  
      ch       

  private static java.lang.String readContent(java.io.Reader);
    descriptor: (Ljava/io/Reader;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.io.Reader r
         0: .line 73
            new java.io.CharArrayWriter
            dup
            sipush 1024
            invokespecial java.io.CharArrayWriter.<init>:(I)V
            astore 1 /* writer */
        start local 1 // java.io.CharArrayWriter writer
         1: .line 74
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         2: .line 76
            goto 7
        start local 3 // int ch
         3: .line 77
      StackMap locals: java.io.CharArrayWriter int int
      StackMap stack:
            aload 1 /* writer */
            iload 3 /* ch */
            invokevirtual java.io.CharArrayWriter.write:(I)V
         4: .line 78
            iinc 2 /* count */ 1
         5: .line 79
            iload 2 /* count */
            ldc 1048576
            if_icmplt 7
         6: .line 80
            new java.io.IOException
            dup
            ldc "Presets with more than 1048576 characters can't be read."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int ch
         7: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* r */
            invokevirtual java.io.Reader.read:()I
            dup
            istore 3 /* ch */
        start local 3 // int ch
         8: iconst_m1
            if_icmpne 3
         9: .line 83
            new java.lang.String
            dup
            aload 1 /* writer */
            invokevirtual java.io.CharArrayWriter.toCharArray:()[C
            invokespecial java.lang.String.<init>:([C)V
            areturn
        end local 3 // int ch
        end local 2 // int count
        end local 1 // java.io.CharArrayWriter writer
        end local 0 // java.io.Reader r
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0       r  Ljava/io/Reader;
            1   10     1  writer  Ljava/io/CharArrayWriter;
            2   10     2   count  I
            3    7     3      ch  I
            8   10     3      ch  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      r     
}
SourceFile: "JFCParser.java"