public class org.apache.commons.vfs2.provider.sftp.SftpStreamProxy implements com.jcraft.jsch.Proxy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.vfs2.provider.sftp.SftpStreamProxy
  super_class: java.lang.Object
{
  public static final java.lang.String BASH_TCP_COMMAND;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "/bin/bash -c 'exec 3<>/dev/tcp/%s/%d; cat <&3 & cat >&3; kill $!"

  public static final java.lang.String NETCAT_COMMAND;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "nc -q 0 %s %d"

  private com.jcraft.jsch.ChannelExec channel;
    descriptor: Lcom/jcraft/jsch/ChannelExec;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.String commandFormat;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String proxyHost;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.commons.vfs2.FileSystemOptions proxyOptions;
    descriptor: Lorg/apache/commons/vfs2/FileSystemOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String proxyPassword;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int proxyPort;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String proxyUser;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.jcraft.jsch.Session session;
    descriptor: Lcom/jcraft/jsch/Session;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, org.apache.commons.vfs2.FileSystemOptions);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Lorg/apache/commons/vfs2/FileSystemOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
        start local 1 // java.lang.String commandFormat
        start local 2 // java.lang.String proxyUser
        start local 3 // java.lang.String proxyHost
        start local 4 // int proxyPort
        start local 5 // java.lang.String proxyPassword
        start local 6 // org.apache.commons.vfs2.FileSystemOptions proxyOptions
         0: .line 116
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 118
            aload 0 /* this */
            aload 3 /* proxyHost */
            putfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyHost:Ljava/lang/String;
         2: .line 119
            aload 0 /* this */
            iload 4 /* proxyPort */
            putfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyPort:I
         3: .line 120
            aload 0 /* this */
            aload 2 /* proxyUser */
            putfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyUser:Ljava/lang/String;
         4: .line 121
            aload 0 /* this */
            aload 5 /* proxyPassword */
            putfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyPassword:Ljava/lang/String;
         5: .line 122
            aload 0 /* this */
            aload 1 /* commandFormat */
            putfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.commandFormat:Ljava/lang/String;
         6: .line 123
            aload 0 /* this */
            aload 6 /* proxyOptions */
            putfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyOptions:Lorg/apache/commons/vfs2/FileSystemOptions;
         7: .line 124
            return
        end local 6 // org.apache.commons.vfs2.FileSystemOptions proxyOptions
        end local 5 // java.lang.String proxyPassword
        end local 4 // int proxyPort
        end local 3 // java.lang.String proxyHost
        end local 2 // java.lang.String proxyUser
        end local 1 // java.lang.String commandFormat
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/apache/commons/vfs2/provider/sftp/SftpStreamProxy;
            0    8     1  commandFormat  Ljava/lang/String;
            0    8     2      proxyUser  Ljava/lang/String;
            0    8     3      proxyHost  Ljava/lang/String;
            0    8     4      proxyPort  I
            0    8     5  proxyPassword  Ljava/lang/String;
            0    8     6   proxyOptions  Lorg/apache/commons/vfs2/FileSystemOptions;
    MethodParameters:
               Name  Flags
      commandFormat  final
      proxyUser      final
      proxyHost      final
      proxyPort      final
      proxyPassword  final
      proxyOptions   final

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
         0: .line 128
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.channel:Lcom/jcraft/jsch/ChannelExec;
            ifnull 2
         1: .line 129
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.channel:Lcom/jcraft/jsch/ChannelExec;
            invokevirtual com.jcraft.jsch.ChannelExec.disconnect:()V
         2: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.session:Lcom/jcraft/jsch/Session;
            ifnull 4
         3: .line 132
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.session:Lcom/jcraft/jsch/Session;
            invokevirtual com.jcraft.jsch.Session.disconnect:()V
         4: .line 134
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpStreamProxy;

  public void connect(com.jcraft.jsch.SocketFactory, java.lang.String, int, int);
    descriptor: (Lcom/jcraft/jsch/SocketFactory;Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
        start local 1 // com.jcraft.jsch.SocketFactory socketFactory
        start local 2 // java.lang.String targetHost
        start local 3 // int targetPort
        start local 4 // int timeout
         0: .line 139
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyHost:Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyPort:I
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyUser:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
         1: .line 140
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyPassword:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.proxyOptions:Lorg/apache/commons/vfs2/FileSystemOptions;
         2: .line 139
            invokestatic org.apache.commons.vfs2.provider.sftp.SftpClientFactory.createConnection:(Ljava/lang/String;I[C[CLorg/apache/commons/vfs2/FileSystemOptions;)Lcom/jcraft/jsch/Session;
            putfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.session:Lcom/jcraft/jsch/Session;
         3: .line 141
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.session:Lcom/jcraft/jsch/Session;
            ldc "exec"
            invokevirtual com.jcraft.jsch.Session.openChannel:(Ljava/lang/String;)Lcom/jcraft/jsch/Channel;
            checkcast com.jcraft.jsch.ChannelExec
            putfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.channel:Lcom/jcraft/jsch/ChannelExec;
         4: .line 142
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.channel:Lcom/jcraft/jsch/ChannelExec;
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.commandFormat:Ljava/lang/String;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* targetHost */
            aastore
            dup
            iconst_1
            iload 3 /* targetPort */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.jcraft.jsch.ChannelExec.setCommand:(Ljava/lang/String;)V
         5: .line 143
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.channel:Lcom/jcraft/jsch/ChannelExec;
            iload 4 /* timeout */
            invokevirtual com.jcraft.jsch.ChannelExec.connect:(I)V
         6: .line 144
            return
        end local 4 // int timeout
        end local 3 // int targetPort
        end local 2 // java.lang.String targetHost
        end local 1 // com.jcraft.jsch.SocketFactory socketFactory
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/apache/commons/vfs2/provider/sftp/SftpStreamProxy;
            0    7     1  socketFactory  Lcom/jcraft/jsch/SocketFactory;
            0    7     2     targetHost  Ljava/lang/String;
            0    7     3     targetPort  I
            0    7     4        timeout  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
               Name  Flags
      socketFactory  final
      targetHost     final
      targetPort     final
      timeout        final

  public java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
         0: .line 149
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.channel:Lcom/jcraft/jsch/ChannelExec;
            invokevirtual com.jcraft.jsch.ChannelExec.getInputStream:()Ljava/io/InputStream;
         1: areturn
         2: .line 150
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 151
            new java.lang.IllegalStateException
            dup
            ldc "IOException getting the SSH proxy input stream"
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpStreamProxy;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  public java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
         0: .line 158
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpStreamProxy.channel:Lcom/jcraft/jsch/ChannelExec;
            invokevirtual com.jcraft.jsch.ChannelExec.getOutputStream:()Ljava/io/OutputStream;
         1: areturn
         2: .line 159
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 160
            new java.lang.IllegalStateException
            dup
            ldc "IOException getting the SSH proxy output stream"
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpStreamProxy;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  public java.net.Socket getSocket();
    descriptor: ()Ljava/net/Socket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
         0: .line 166
            aconst_null
            areturn
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpStreamProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpStreamProxy;
}
SourceFile: "SftpStreamProxy.java"