public class test.TestEventReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: test.TestEventReader
  super_class: java.lang.Object
{
  final javax.xml.stream.XMLInputFactory mFactory;
    descriptor: Ljavax/xml/stream/XMLInputFactory;
    flags: (0x0010) ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // test.TestEventReader this
         0: .line 16
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 17
            ldc "javax.xml.stream.XMLInputFactory"
         2: .line 18
            ldc "com.fasterxml.aalto.stax.InputFactoryImpl"
         3: .line 17
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
         4: .line 19
            invokestatic javax.xml.stream.XMLInputFactory.newInstance:()Ljavax/xml/stream/XMLInputFactory;
            astore 1 /* f */
        start local 1 // javax.xml.stream.XMLInputFactory f
         5: .line 20
            aload 0 /* this */
            aload 1 /* f */
            putfield test.TestEventReader.mFactory:Ljavax/xml/stream/XMLInputFactory;
         6: .line 22
            aload 1 /* f */
            ldc "javax.xml.stream.isCoalescing"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual javax.xml.stream.XMLInputFactory.setProperty:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 25
            aload 1 /* f */
            ldc "javax.xml.stream.isReplacingEntityReferences"
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual javax.xml.stream.XMLInputFactory.setProperty:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 27
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Factory instance: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* f */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 28
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  coalescing: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* f */
            ldc "javax.xml.stream.isCoalescing"
            invokevirtual javax.xml.stream.XMLInputFactory.getProperty:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 29
            return
        end local 1 // javax.xml.stream.XMLInputFactory f
        end local 0 // test.TestEventReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ltest/TestEventReader;
            5   11     1     f  Ljavax/xml/stream/XMLInputFactory;

  public void test(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // test.TestEventReader this
        start local 1 // java.lang.String[] args
         0: .line 33
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmpeq 3
         1: .line 34
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Usage: java ... "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " [file]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 35
            iconst_1
            invokestatic java.lang.System.exit:(I)V
         3: .line 37
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iconst_0
            aaload
            astore 2 /* filename */
        start local 2 // java.lang.String filename
         4: .line 38
            new java.io.File
            dup
            aload 2 /* filename */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* file */
        start local 3 // java.io.File file
         5: .line 39
            new java.io.FileReader
            dup
            aload 3 /* file */
            invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
            astore 4 /* fin */
        start local 4 // java.io.Reader fin
         6: .line 43
            aload 0 /* this */
            getfield test.TestEventReader.mFactory:Ljavax/xml/stream/XMLInputFactory;
            aload 3 /* file */
            invokevirtual java.io.File.toURL:()Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            aload 4 /* fin */
            invokevirtual javax.xml.stream.XMLInputFactory.createXMLEventReader:(Ljava/lang/String;Ljava/io/Reader;)Ljavax/xml/stream/XMLEventReader;
            astore 5 /* er */
        start local 5 // javax.xml.stream.XMLEventReader er
         7: .line 45
            new java.io.PrintWriter
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* out */
        start local 6 // java.io.Writer out
         8: .line 48
            goto 28
         9: .line 49
      StackMap locals: test.TestEventReader java.lang.String[] java.lang.String java.io.File java.io.Reader javax.xml.stream.XMLEventReader java.io.Writer
      StackMap stack:
            aload 5 /* er */
            invokeinterface javax.xml.stream.XMLEventReader.nextEvent:()Ljavax/xml/stream/events/XMLEvent;
            astore 7 /* evt */
        start local 7 // javax.xml.stream.events.XMLEvent evt
        10: .line 52
            aload 7 /* evt */
            invokeinterface javax.xml.stream.events.XMLEvent.isStartElement:()Z
            ifeq 19
        11: .line 53
            aload 7 /* evt */
            checkcast javax.xml.stream.events.StartElement
            astore 8 /* elem */
        start local 8 // javax.xml.stream.events.StartElement elem
        12: .line 54
            aload 8 /* elem */
            invokeinterface javax.xml.stream.events.StartElement.getName:()Ljavax/xml/namespace/QName;
            astore 9 /* n */
        start local 9 // javax.xml.namespace.QName n
        13: .line 55
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "QName = ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* n */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", ns='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* n */
            invokevirtual javax.xml.namespace.QName.getNamespaceURI:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "']"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 56
            aload 8 /* elem */
            invokeinterface javax.xml.stream.events.StartElement.getNamespaces:()Ljava/util/Iterator;
            astore 10 /* it */
        start local 10 // java.util.Iterator it
        15: .line 59
            goto 17
        16: .line 60
      StackMap locals: test.TestEventReader java.lang.String[] java.lang.String java.io.File java.io.Reader javax.xml.stream.XMLEventReader java.io.Writer javax.xml.stream.events.XMLEvent javax.xml.stream.events.StartElement javax.xml.namespace.QName java.util.Iterator
      StackMap stack:
            aload 10 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            pop
        17: .line 59
      StackMap locals:
      StackMap stack:
            aload 10 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 10 // java.util.Iterator it
        end local 9 // javax.xml.namespace.QName n
        end local 8 // javax.xml.stream.events.StartElement elem
        18: .line 64
            goto 27
      StackMap locals:
      StackMap stack:
        19: aload 7 /* evt */
            invokeinterface javax.xml.stream.events.XMLEvent.isCharacters:()Z
            ifeq 24
        20: .line 65
            aload 7 /* evt */
            invokeinterface javax.xml.stream.events.XMLEvent.asCharacters:()Ljavax/xml/stream/events/Characters;
            astore 8 /* chars */
        start local 8 // javax.xml.stream.events.Characters chars
        21: .line 66
            aload 8 /* chars */
            invokeinterface javax.xml.stream.events.Characters.getData:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            istore 9 /* len */
        start local 9 // int len
        22: .line 67
            aload 6 /* out */
            new java.lang.StringBuilder
            dup
            ldc "[CHARACTERS("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "), ws: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* chars */
            invokeinterface javax.xml.stream.events.Characters.isWhiteSpace:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", iws: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* chars */
            invokeinterface javax.xml.stream.events.Characters.isIgnorableWhiteSpace:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        end local 9 // int len
        end local 8 // javax.xml.stream.events.Characters chars
        23: .line 68
            goto 27
      StackMap locals:
      StackMap stack:
        24: aload 7 /* evt */
            instanceof javax.xml.stream.events.EntityReference
            ifeq 27
        25: .line 69
            aload 7 /* evt */
            checkcast javax.xml.stream.events.EntityReference
            astore 8 /* eref */
        start local 8 // javax.xml.stream.events.EntityReference eref
        26: .line 70
            aload 6 /* out */
            new java.lang.StringBuilder
            dup
            ldc "[ENTITY-REF '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* eref */
            invokeinterface javax.xml.stream.events.EntityReference.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "']"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        end local 8 // javax.xml.stream.events.EntityReference eref
        27: .line 73
      StackMap locals:
      StackMap stack:
            aload 7 /* evt */
            aload 6 /* out */
            invokeinterface javax.xml.stream.events.XMLEvent.writeAsEncodedUnicode:(Ljava/io/Writer;)V
        end local 7 // javax.xml.stream.events.XMLEvent evt
        28: .line 48
      StackMap locals:
      StackMap stack:
            aload 5 /* er */
            invokeinterface javax.xml.stream.XMLEventReader.hasNext:()Z
            ifne 9
        29: .line 80
            aload 6 /* out */
            invokevirtual java.io.Writer.flush:()V
        30: .line 81
            aload 4 /* fin */
            invokevirtual java.io.Reader.close:()V
        31: .line 82
            return
        end local 6 // java.io.Writer out
        end local 5 // javax.xml.stream.XMLEventReader er
        end local 4 // java.io.Reader fin
        end local 3 // java.io.File file
        end local 2 // java.lang.String filename
        end local 1 // java.lang.String[] args
        end local 0 // test.TestEventReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   32     0      this  Ltest/TestEventReader;
            0   32     1      args  [Ljava/lang/String;
            4   32     2  filename  Ljava/lang/String;
            5   32     3      file  Ljava/io/File;
            6   32     4       fin  Ljava/io/Reader;
            7   32     5        er  Ljavax/xml/stream/XMLEventReader;
            8   32     6       out  Ljava/io/Writer;
           10   28     7       evt  Ljavax/xml/stream/events/XMLEvent;
           12   18     8      elem  Ljavax/xml/stream/events/StartElement;
           13   18     9         n  Ljavax/xml/namespace/QName;
           15   18    10        it  Ljava/util/Iterator<*>;
           21   23     8     chars  Ljavax/xml/stream/events/Characters;
           22   23     9       len  I
           26   27     8      eref  Ljavax/xml/stream/events/EntityReference;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 94
            new test.TestEventReader
            dup
            invokespecial test.TestEventReader.<init>:()V
            aload 0 /* args */
            invokevirtual test.TestEventReader.test:([Ljava/lang/String;)V
         1: .line 98
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "TestEventReader.java"