public class test.TestStreamCopier
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: test.TestStreamCopier
  super_class: java.lang.Object
{
  static final boolean ENABLE_DTD_VALIDATION;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // test.TestStreamCopier this
         0: .line 20
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // test.TestStreamCopier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ltest/TestStreamCopier;

  protected org.codehaus.stax2.XMLInputFactory2 getFactory();
    descriptor: ()Lorg/codehaus/stax2/XMLInputFactory2;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // test.TestStreamCopier this
         0: .line 24
            invokestatic javax.xml.stream.XMLInputFactory.newInstance:()Ljavax/xml/stream/XMLInputFactory;
            astore 1 /* f */
        start local 1 // javax.xml.stream.XMLInputFactory f
         1: .line 27
            aload 1 /* f */
            ldc "javax.xml.stream.isCoalescing"
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual javax.xml.stream.XMLInputFactory.setProperty:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 30
            aload 1 /* f */
            ldc "javax.xml.stream.isNamespaceAware"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual javax.xml.stream.XMLInputFactory.setProperty:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 32
            aload 1 /* f */
            ldc "javax.xml.stream.supportDTD"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual javax.xml.stream.XMLInputFactory.setProperty:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 33
            aload 1 /* f */
            ldc "javax.xml.stream.isValidating"
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokevirtual javax.xml.stream.XMLInputFactory.setProperty:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 39
            aload 1 /* f */
            checkcast org.codehaus.stax2.XMLInputFactory2
            areturn
        end local 1 // javax.xml.stream.XMLInputFactory f
        end local 0 // test.TestStreamCopier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ltest/TestStreamCopier;
            1    6     1     f  Ljavax/xml/stream/XMLInputFactory;

  protected org.codehaus.stax2.XMLOutputFactory2 getOutputFactory();
    descriptor: ()Lorg/codehaus/stax2/XMLOutputFactory2;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // test.TestStreamCopier this
         0: .line 44
            invokestatic javax.xml.stream.XMLOutputFactory.newInstance:()Ljavax/xml/stream/XMLOutputFactory;
            astore 1 /* f */
        start local 1 // javax.xml.stream.XMLOutputFactory f
         1: .line 45
            aload 1 /* f */
            ldc "javax.xml.stream.isRepairingNamespaces"
         2: .line 47
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
         3: .line 45
            invokevirtual javax.xml.stream.XMLOutputFactory.setProperty:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 49
            aload 1 /* f */
            checkcast org.codehaus.stax2.XMLOutputFactory2
            areturn
        end local 1 // javax.xml.stream.XMLOutputFactory f
        end local 0 // test.TestStreamCopier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ltest/TestStreamCopier;
            1    5     1     f  Ljavax/xml/stream/XMLOutputFactory;

  protected void test(java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // test.TestStreamCopier this
        start local 1 // java.lang.String input
        start local 2 // java.io.OutputStream out
         0: .line 54
            aload 0 /* this */
            invokevirtual test.TestStreamCopier.getFactory:()Lorg/codehaus/stax2/XMLInputFactory2;
            astore 3 /* ifact */
        start local 3 // org.codehaus.stax2.XMLInputFactory2 ifact
         1: .line 55
            aload 0 /* this */
            invokevirtual test.TestStreamCopier.getOutputFactory:()Lorg/codehaus/stax2/XMLOutputFactory2;
            astore 4 /* of */
        start local 4 // org.codehaus.stax2.XMLOutputFactory2 of
         2: .line 61
            aload 1 /* input */
            ldc ".gz"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 6
         3: .line 62
            new java.util.zip.GZIPInputStream
            dup
            new java.io.FileInputStream
            dup
            new java.io.File
            dup
            aload 1 /* input */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            invokespecial java.util.zip.GZIPInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* in */
        start local 6 // java.io.InputStream in
         4: .line 63
            aload 3 /* ifact */
            aload 6 /* in */
            invokevirtual org.codehaus.stax2.XMLInputFactory2.createXMLStreamReader:(Ljava/io/InputStream;)Ljavax/xml/stream/XMLStreamReader;
            checkcast org.codehaus.stax2.XMLStreamReader2
            astore 5 /* sr */
        end local 6 // java.io.InputStream in
        start local 5 // org.codehaus.stax2.XMLStreamReader2 sr
         5: .line 64
            goto 7
        end local 5 // org.codehaus.stax2.XMLStreamReader2 sr
         6: .line 65
      StackMap locals: org.codehaus.stax2.XMLInputFactory2 org.codehaus.stax2.XMLOutputFactory2
      StackMap stack:
            aload 3 /* ifact */
            new java.io.File
            dup
            aload 1 /* input */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual org.codehaus.stax2.XMLInputFactory2.createXMLStreamReader:(Ljava/io/File;)Lorg/codehaus/stax2/XMLStreamReader2;
            astore 5 /* sr */
        start local 5 // org.codehaus.stax2.XMLStreamReader2 sr
         7: .line 72
      StackMap locals: org.codehaus.stax2.XMLStreamReader2
      StackMap stack:
            aload 4 /* of */
            aload 2 /* out */
            ldc "ISO-8859-1"
            invokevirtual org.codehaus.stax2.XMLOutputFactory2.createXMLStreamWriter:(Ljava/io/OutputStream;Ljava/lang/String;)Ljavax/xml/stream/XMLStreamWriter;
            checkcast org.codehaus.stax2.XMLStreamWriter2
            astore 6 /* sw */
        start local 6 // org.codehaus.stax2.XMLStreamWriter2 sw
         8: .line 79
            aload 5 /* sr */
            invokeinterface org.codehaus.stax2.XMLStreamReader2.getEventType:()I
            istore 7 /* type */
        start local 7 // int type
         9: goto 22
        10: .line 80
      StackMap locals: org.codehaus.stax2.XMLStreamWriter2 int
      StackMap stack:
            iload 7 /* type */
            bipush 11
            if_icmpne 11
        11: .line 96
      StackMap locals:
      StackMap stack:
            iload 7 /* type */
            iconst_4
            if_icmpne 14
        12: .line 99
            aload 6 /* sw */
            aload 5 /* sr */
            iconst_0
            invokeinterface org.codehaus.stax2.XMLStreamWriter2.copyEventFromReader:(Lorg/codehaus/stax2/XMLStreamReader2;Z)V
        13: .line 100
            goto 21
      StackMap locals:
      StackMap stack:
        14: iload 7 /* type */
            bipush 12
            if_icmpne 17
        15: .line 101
            aload 6 /* sw */
            aload 5 /* sr */
            invokeinterface org.codehaus.stax2.XMLStreamReader2.getText:()Ljava/lang/String;
            invokeinterface org.codehaus.stax2.XMLStreamWriter2.writeCharacters:(Ljava/lang/String;)V
        16: .line 103
            goto 21
      StackMap locals:
      StackMap stack:
        17: iload 7 /* type */
            iconst_2
            if_icmpne 20
        18: .line 104
            aload 6 /* sw */
            invokeinterface org.codehaus.stax2.XMLStreamWriter2.writeEndElement:()V
        19: .line 105
            goto 21
        20: .line 106
      StackMap locals:
      StackMap stack:
            aload 6 /* sw */
            aload 5 /* sr */
            iconst_0
            invokeinterface org.codehaus.stax2.XMLStreamWriter2.copyEventFromReader:(Lorg/codehaus/stax2/XMLStreamReader2;Z)V
        21: .line 79
      StackMap locals:
      StackMap stack:
            aload 5 /* sr */
            invokeinterface org.codehaus.stax2.XMLStreamReader2.next:()I
            istore 7 /* type */
      StackMap locals:
      StackMap stack:
        22: iload 7 /* type */
            bipush 8
            if_icmpne 10
        end local 7 // int type
        23: .line 123
            aload 5 /* sr */
            invokeinterface org.codehaus.stax2.XMLStreamReader2.close:()V
        24: .line 124
            aload 6 /* sw */
            invokeinterface org.codehaus.stax2.XMLStreamWriter2.close:()V
        25: .line 125
            return
        end local 6 // org.codehaus.stax2.XMLStreamWriter2 sw
        end local 5 // org.codehaus.stax2.XMLStreamReader2 sr
        end local 4 // org.codehaus.stax2.XMLOutputFactory2 of
        end local 3 // org.codehaus.stax2.XMLInputFactory2 ifact
        end local 2 // java.io.OutputStream out
        end local 1 // java.lang.String input
        end local 0 // test.TestStreamCopier this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   26     0   this  Ltest/TestStreamCopier;
            0   26     1  input  Ljava/lang/String;
            0   26     2    out  Ljava/io/OutputStream;
            1   26     3  ifact  Lorg/codehaus/stax2/XMLInputFactory2;
            2   26     4     of  Lorg/codehaus/stax2/XMLOutputFactory2;
            5    6     5     sr  Lorg/codehaus/stax2/XMLStreamReader2;
            7   26     5     sr  Lorg/codehaus/stax2/XMLStreamReader2;
            4    5     6     in  Ljava/io/InputStream;
            8   26     6     sw  Lorg/codehaus/stax2/XMLStreamWriter2;
            9   23     7   type  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
       Name  Flags
      input  
      out    

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 130
            aload 0 /* args */
            arraylength
            iconst_1
            if_icmpeq 3
         1: .line 131
            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
            ldc Ltest/TestStreamCopier;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)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 132
            iconst_1
            invokestatic java.lang.System.exit:(I)V
         3: .line 136
      StackMap locals:
      StackMap stack:
            new test.TestStreamCopier
            dup
            invokespecial test.TestStreamCopier.<init>:()V
            aload 0 /* args */
            iconst_0
            aaload
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual test.TestStreamCopier.test:(Ljava/lang/String;Ljava/io/OutputStream;)V
         4: .line 137
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.flush:()V
         5: .line 138
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         7: .line 139
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* t */
            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
         8: .line 140
            aload 1 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        end local 1 // java.lang.Throwable t
         9: .line 142
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  args  [Ljava/lang/String;
            7    9     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "TestStreamCopier.java"