public class org.apache.commons.vfs2.provider.sftp.SftpFileSystem extends org.apache.commons.vfs2.provider.AbstractFileSystem
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.vfs2.provider.sftp.SftpFileSystem
  super_class: org.apache.commons.vfs2.provider.AbstractFileSystem
{
  private static final int UNIDENTIFED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

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

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

  private static final long LAST_MOD_TIME_ACCURACY;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  private volatile com.jcraft.jsch.Session session;
    descriptor: Lcom/jcraft/jsch/Session;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile com.jcraft.jsch.ChannelSftp idleChannel;
    descriptor: Lcom/jcraft/jsch/ChannelSftp;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private volatile int uid;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int[] groupsIds;
    descriptor: [I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  protected void <init>(org.apache.commons.vfs2.provider.GenericFileName, com.jcraft.jsch.Session, org.apache.commons.vfs2.FileSystemOptions);
    descriptor: (Lorg/apache/commons/vfs2/provider/GenericFileName;Lcom/jcraft/jsch/Session;Lorg/apache/commons/vfs2/FileSystemOptions;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
        start local 1 // org.apache.commons.vfs2.provider.GenericFileName rootName
        start local 2 // com.jcraft.jsch.Session session
        start local 3 // org.apache.commons.vfs2.FileSystemOptions fileSystemOptions
         0: .line 83
            aload 0 /* this */
            aload 1 /* rootName */
            aconst_null
            aload 3 /* fileSystemOptions */
            invokespecial org.apache.commons.vfs2.provider.AbstractFileSystem.<init>:(Lorg/apache/commons/vfs2/FileName;Lorg/apache/commons/vfs2/FileObject;Lorg/apache/commons/vfs2/FileSystemOptions;)V
         1: .line 71
            aload 0 /* this */
            iconst_m1
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.uid:I
         2: .line 84
            aload 0 /* this */
            aload 2 /* session */
            ldc "session"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast com.jcraft.jsch.Session
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.session:Lcom/jcraft/jsch/Session;
         3: .line 85
            aload 0 /* this */
            invokestatic org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.getInstance:()Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystemConfigBuilder;
         4: .line 86
            aload 3 /* fileSystemOptions */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.getConnectTimeoutMillis:(Lorg/apache/commons/vfs2/FileSystemOptions;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
         5: .line 85
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.connectTimeoutMillis:I
         6: .line 87
            return
        end local 3 // org.apache.commons.vfs2.FileSystemOptions fileSystemOptions
        end local 2 // com.jcraft.jsch.Session session
        end local 1 // org.apache.commons.vfs2.provider.GenericFileName rootName
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
            0    7     1           rootName  Lorg/apache/commons/vfs2/provider/GenericFileName;
            0    7     2            session  Lcom/jcraft/jsch/Session;
            0    7     3  fileSystemOptions  Lorg/apache/commons/vfs2/FileSystemOptions;
    MethodParameters:
                   Name  Flags
      rootName           final
      session            final
      fileSystemOptions  final

  protected void doCloseCommunicationLink();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
         0: .line 91
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
            ifnull 9
         1: .line 92
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 93
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
            ifnull 5
         3: .line 94
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
            invokevirtual com.jcraft.jsch.ChannelSftp.disconnect:()V
         4: .line 95
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
         5: .line 92
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.session:Lcom/jcraft/jsch/Session;
            ifnull 11
        10: .line 101
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.session:Lcom/jcraft/jsch/Session;
            invokevirtual com.jcraft.jsch.Session.disconnect:()V
        11: .line 103
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any

  protected com.jcraft.jsch.ChannelSftp getChannel();
    descriptor: ()Lcom/jcraft/jsch/ChannelSftp;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
         0: .line 115
            aconst_null
            astore 1 /* channel */
        start local 1 // com.jcraft.jsch.ChannelSftp channel
         1: .line 116
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
            ifnull 10
         2: .line 117
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 118
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
            ifnull 6
         4: .line 119
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
            astore 1 /* channel */
         5: .line 120
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
         6: .line 117
      StackMap locals: com.jcraft.jsch.ChannelSftp org.apache.commons.vfs2.provider.sftp.SftpFileSystem
      StackMap stack:
            aload 2
            monitorexit
         7: goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getSession:()Lcom/jcraft/jsch/Session;
            ldc "sftp"
            invokevirtual com.jcraft.jsch.Session.openChannel:(Ljava/lang/String;)Lcom/jcraft/jsch/Channel;
            checkcast com.jcraft.jsch.ChannelSftp
            astore 1 /* channel */
        11: .line 125
            aload 1 /* channel */
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.connectTimeoutMillis:I
            invokevirtual com.jcraft.jsch.ChannelSftp.connect:(I)V
        12: .line 126
            invokestatic org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.getInstance:()Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystemConfigBuilder;
        13: .line 127
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getFileSystemOptions:()Lorg/apache/commons/vfs2/FileSystemOptions;
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.getUserDirIsRoot:(Lorg/apache/commons/vfs2/FileSystemOptions;)Ljava/lang/Boolean;
        14: .line 126
            astore 2 /* userDirIsRoot */
        start local 2 // java.lang.Boolean userDirIsRoot
        15: .line 128
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getRootName:()Lorg/apache/commons/vfs2/FileName;
            invokeinterface org.apache.commons.vfs2.FileName.getPath:()Ljava/lang/String;
            astore 3 /* workingDirectory */
        start local 3 // java.lang.String workingDirectory
        16: .line 129
            aload 3 /* workingDirectory */
            ifnull 23
            aload 2 /* userDirIsRoot */
            ifnull 17
            aload 2 /* userDirIsRoot */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 23
        17: .line 131
      StackMap locals: java.lang.Boolean java.lang.String
      StackMap stack:
            aload 1 /* channel */
            aload 3 /* workingDirectory */
            invokevirtual com.jcraft.jsch.ChannelSftp.cd:(Ljava/lang/String;)V
        18: .line 132
            goto 23
      StackMap locals:
      StackMap stack: com.jcraft.jsch.SftpException
        19: astore 4 /* e */
        start local 4 // com.jcraft.jsch.SftpException e
        20: .line 133
            new org.apache.commons.vfs2.FileSystemException
            dup
            ldc "vfs.provider.sftp/change-work-directory.error"
            aload 3 /* workingDirectory */
        21: .line 134
            aload 4 /* e */
        22: .line 133
            invokespecial org.apache.commons.vfs2.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Throwable;)V
            athrow
        end local 4 // com.jcraft.jsch.SftpException e
        end local 3 // java.lang.String workingDirectory
        end local 2 // java.lang.Boolean userDirIsRoot
        23: .line 139
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.getInstance:()Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystemConfigBuilder;
        24: .line 140
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getFileSystemOptions:()Lorg/apache/commons/vfs2/FileSystemOptions;
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.getFileNameEncoding:(Lorg/apache/commons/vfs2/FileSystemOptions;)Ljava/lang/String;
        25: .line 139
            astore 2 /* fileNameEncoding */
        start local 2 // java.lang.String fileNameEncoding
        26: .line 142
            aload 2 /* fileNameEncoding */
            ifnull 31
        27: .line 144
            aload 1 /* channel */
            aload 2 /* fileNameEncoding */
            invokevirtual com.jcraft.jsch.ChannelSftp.setFilenameEncoding:(Ljava/lang/String;)V
        28: .line 145
            goto 31
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem com.jcraft.jsch.ChannelSftp java.lang.String
      StackMap stack: com.jcraft.jsch.SftpException
        29: pop
        30: .line 146
            new org.apache.commons.vfs2.FileSystemException
            dup
            ldc "vfs.provider.sftp/filename-encoding.error"
            aload 2 /* fileNameEncoding */
            invokespecial org.apache.commons.vfs2.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            athrow
        31: .line 149
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
        32: areturn
        end local 2 // java.lang.String fileNameEncoding
        end local 1 // com.jcraft.jsch.ChannelSftp channel
        33: .line 150
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem
      StackMap stack: com.jcraft.jsch.JSchException
            astore 1 /* e */
        start local 1 // com.jcraft.jsch.JSchException e
        34: .line 151
            new org.apache.commons.vfs2.FileSystemException
            dup
            ldc "vfs.provider.sftp/connect.error"
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getRootName:()Lorg/apache/commons/vfs2/FileName;
            aload 1 /* e */
            invokespecial org.apache.commons.vfs2.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Throwable;)V
            athrow
        end local 1 // com.jcraft.jsch.JSchException e
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   35     0              this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
            1   33     1           channel  Lcom/jcraft/jsch/ChannelSftp;
           15   23     2     userDirIsRoot  Ljava/lang/Boolean;
           16   23     3  workingDirectory  Ljava/lang/String;
           20   23     4                 e  Lcom/jcraft/jsch/SftpException;
           26   33     2  fileNameEncoding  Ljava/lang/String;
           34   35     1                 e  Lcom/jcraft/jsch/JSchException;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
          17    18      19  Class com.jcraft.jsch.SftpException
          27    28      29  Class com.jcraft.jsch.SftpException
           0    32      33  Class com.jcraft.jsch.JSchException
    Exceptions:
      throws java.io.IOException

  private com.jcraft.jsch.Session getSession();
    descriptor: ()Lcom/jcraft/jsch/Session;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
         0: .line 161
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.session:Lcom/jcraft/jsch/Session;
            invokevirtual com.jcraft.jsch.Session.isConnected:()Z
            ifne 11
         1: .line 162
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 163
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.session:Lcom/jcraft/jsch/Session;
            invokevirtual com.jcraft.jsch.Session.isConnected:()Z
            ifne 7
         3: .line 164
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.doCloseCommunicationLink:()V
         4: .line 165
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getRootName:()Lorg/apache/commons/vfs2/FileName;
            checkcast org.apache.commons.vfs2.provider.GenericFileName
         5: .line 166
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getFileSystemOptions:()Lorg/apache/commons/vfs2/FileSystemOptions;
         6: .line 165
            invokestatic org.apache.commons.vfs2.provider.sftp.SftpFileProvider.createSession:(Lorg/apache/commons/vfs2/provider/GenericFileName;Lorg/apache/commons/vfs2/FileSystemOptions;)Lcom/jcraft/jsch/Session;
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.session:Lcom/jcraft/jsch/Session;
         7: .line 162
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem
      StackMap stack:
            aload 1
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 1
            monitorexit
        10: athrow
        11: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.session:Lcom/jcraft/jsch/Session;
            areturn
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException

  protected void putChannel(com.jcraft.jsch.ChannelSftp);
    descriptor: (Lcom/jcraft/jsch/ChannelSftp;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
        start local 1 // com.jcraft.jsch.ChannelSftp channel
         0: .line 179
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
            ifnonnull 11
         1: .line 180
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 181
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
            ifnonnull 6
         3: .line 183
            aload 1 /* channel */
            invokevirtual com.jcraft.jsch.ChannelSftp.isConnected:()Z
            ifeq 7
            aload 1 /* channel */
            invokevirtual com.jcraft.jsch.ChannelSftp.isClosed:()Z
            ifne 7
         4: .line 184
            aload 0 /* this */
            aload 1 /* channel */
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.idleChannel:Lcom/jcraft/jsch/ChannelSftp;
         5: .line 186
            goto 7
         6: .line 187
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem
      StackMap stack:
            aload 1 /* channel */
            invokevirtual com.jcraft.jsch.ChannelSftp.disconnect:()V
         7: .line 180
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         8: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 191
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
            invokevirtual com.jcraft.jsch.ChannelSftp.disconnect:()V
        12: .line 193
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.jcraft.jsch.ChannelSftp channel
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
            0   13     1  channel  Lcom/jcraft/jsch/ChannelSftp;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any
    MethodParameters:
         Name  Flags
      channel  final

  protected void addCapabilities(java.util.Collection<org.apache.commons.vfs2.Capability>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
        start local 1 // java.util.Collection caps
         0: .line 200
            aload 1 /* caps */
            getstatic org.apache.commons.vfs2.provider.sftp.SftpFileProvider.capabilities:Ljava/util/Collection;
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
         1: .line 201
            return
        end local 1 // java.util.Collection caps
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
            0    2     1  caps  Ljava/util/Collection<Lorg/apache/commons/vfs2/Capability;>;
    Signature: (Ljava/util/Collection<Lorg/apache/commons/vfs2/Capability;>;)V
    MethodParameters:
      Name  Flags
      caps  final

  protected org.apache.commons.vfs2.FileObject createFile(org.apache.commons.vfs2.provider.AbstractFileName);
    descriptor: (Lorg/apache/commons/vfs2/provider/AbstractFileName;)Lorg/apache/commons/vfs2/FileObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
        start local 1 // org.apache.commons.vfs2.provider.AbstractFileName name
         0: .line 208
            new org.apache.commons.vfs2.provider.sftp.SftpFileObject
            dup
            aload 1 /* name */
            aload 0 /* this */
            invokespecial org.apache.commons.vfs2.provider.sftp.SftpFileObject.<init>:(Lorg/apache/commons/vfs2/provider/AbstractFileName;Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;)V
            areturn
        end local 1 // org.apache.commons.vfs2.provider.AbstractFileName name
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
            0    1     1  name  Lorg/apache/commons/vfs2/provider/AbstractFileName;
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException
    MethodParameters:
      Name  Flags
      name  final

  public double getLastModTimeAccuracy();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
         0: .line 218
            ldc 1000.0
            dreturn
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;

  public int[] getGroupsIds();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
         0: .line 230
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.groupsIds:[I
            ifnonnull 21
         1: .line 231
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 233
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.groupsIds:[I
            ifnonnull 17
         3: .line 234
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* output */
        start local 2 // java.lang.StringBuilder output
         4: .line 235
            aload 0 /* this */
            ldc "id -G"
            aload 2 /* output */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.executeCommand:(Ljava/lang/String;Ljava/lang/StringBuilder;)I
            istore 3 /* code */
        start local 3 // int code
         5: .line 236
            iload 3 /* code */
            ifeq 9
         6: .line 237
            new com.jcraft.jsch.JSchException
            dup
         7: .line 238
            new java.lang.StringBuilder
            dup
            ldc "Could not get the groups id of the current user (error code: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* code */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 237
            invokespecial com.jcraft.jsch.JSchException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 241
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem java.lang.StringBuilder int
      StackMap stack:
            aload 2 /* output */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc "\\s+"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 4 /* groups */
        start local 4 // java.lang.String[] groups
        10: .line 243
            aload 4 /* groups */
            arraylength
            newarray 10
            astore 5 /* groupsIds */
        start local 5 // int[] groupsIds
        11: .line 244
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        12: goto 15
        13: .line 245
      StackMap locals: java.lang.String[] int[] int
      StackMap stack:
            aload 5 /* groupsIds */
            iload 6 /* i */
            aload 4 /* groups */
            iload 6 /* i */
            aaload
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            iastore
        14: .line 244
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* i */
            aload 4 /* groups */
            arraylength
            if_icmplt 13
        end local 6 // int i
        16: .line 247
            aload 0 /* this */
            aload 5 /* groupsIds */
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.groupsIds:[I
        end local 5 // int[] groupsIds
        end local 4 // java.lang.String[] groups
        end local 3 // int code
        end local 2 // java.lang.StringBuilder output
        17: .line 231
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem org.apache.commons.vfs2.provider.sftp.SftpFileSystem
      StackMap stack:
            aload 1
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 1
            monitorexit
        20: athrow
        21: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.groupsIds:[I
            areturn
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0       this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
            4   17     2     output  Ljava/lang/StringBuilder;
            5   17     3       code  I
           10   17     4     groups  [Ljava/lang/String;
           11   17     5  groupsIds  [I
           12   16     6          i  I
      Exception table:
        from    to  target  type
           2    18      19  any
          19    20      19  any
    Exceptions:
      throws com.jcraft.jsch.JSchException, java.io.IOException

  public int getUId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
         0: .line 264
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.uid:I
            iconst_m1
            if_icmpne 14
         1: .line 265
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 266
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.uid:I
            iconst_m1
            if_icmpne 10
         3: .line 267
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* output */
        start local 2 // java.lang.StringBuilder output
         4: .line 268
            aload 0 /* this */
            ldc "id -u"
            aload 2 /* output */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.executeCommand:(Ljava/lang/String;Ljava/lang/StringBuilder;)I
            istore 3 /* code */
        start local 3 // int code
         5: .line 269
            iload 3 /* code */
            ifeq 9
         6: .line 270
            new org.apache.commons.vfs2.FileSystemException
            dup
         7: .line 271
            new java.lang.StringBuilder
            dup
            ldc "Could not get the user id of the current user (error code: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* code */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 270
            invokespecial org.apache.commons.vfs2.FileSystemException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 273
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* output */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.uid:I
        end local 3 // int code
        end local 2 // java.lang.StringBuilder output
        10: .line 265
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 1
            monitorexit
        13: athrow
        14: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.uid:I
            ireturn
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
            4   10     2  output  Ljava/lang/StringBuilder;
            5   10     3    code  I
      Exception table:
        from    to  target  type
           2    11      12  any
          12    13      12  any
    Exceptions:
      throws com.jcraft.jsch.JSchException, java.io.IOException

  private int executeCommand(java.lang.String, java.lang.StringBuilder);
    descriptor: (Ljava/lang/String;Ljava/lang/StringBuilder;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
        start local 1 // java.lang.String command
        start local 2 // java.lang.StringBuilder output
         0: .line 291
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getSession:()Lcom/jcraft/jsch/Session;
            ldc "exec"
            invokevirtual com.jcraft.jsch.Session.openChannel:(Ljava/lang/String;)Lcom/jcraft/jsch/Channel;
            checkcast com.jcraft.jsch.ChannelExec
            astore 3 /* channel */
        start local 3 // com.jcraft.jsch.ChannelExec channel
         1: .line 293
            aload 3 /* channel */
            aload 1 /* command */
            invokevirtual com.jcraft.jsch.ChannelExec.setCommand:(Ljava/lang/String;)V
         2: .line 294
            aload 3 /* channel */
            aconst_null
            invokevirtual com.jcraft.jsch.ChannelExec.setInputStream:(Ljava/io/InputStream;)V
         3: .line 295
            aconst_null
            astore 4
            aconst_null
            astore 5
         4: new java.io.InputStreamReader
            dup
            aload 3 /* channel */
            invokevirtual com.jcraft.jsch.ChannelExec.getInputStream:()Ljava/io/InputStream;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            astore 6 /* stream */
        start local 6 // java.io.InputStreamReader stream
         5: .line 296
            aload 3 /* channel */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            iconst_1
            invokevirtual com.jcraft.jsch.ChannelExec.setErrStream:(Ljava/io/OutputStream;Z)V
         6: .line 297
            aload 3 /* channel */
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.sftp.SftpFileSystem.connectTimeoutMillis:I
            invokevirtual com.jcraft.jsch.ChannelExec.connect:(I)V
         7: .line 300
            sipush 128
            newarray 5
            astore 7 /* buffer */
        start local 7 // char[] buffer
         8: .line 302
            goto 10
        start local 8 // int read
         9: .line 303
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem java.lang.String java.lang.StringBuilder com.jcraft.jsch.ChannelExec java.lang.Throwable java.lang.Throwable java.io.InputStreamReader char[] int
      StackMap stack:
            aload 2 /* output */
            aload 7 /* buffer */
            iconst_0
            iload 8 /* read */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        end local 8 // int read
        10: .line 302
      StackMap locals:
      StackMap stack:
            aload 6 /* stream */
            aload 7 /* buffer */
            iconst_0
            aload 7 /* buffer */
            arraylength
            invokevirtual java.io.InputStreamReader.read:([CII)I
            dup
            istore 8 /* read */
        start local 8 // int read
        11: ifge 9
        end local 8 // int read
        end local 7 // char[] buffer
        12: .line 305
            aload 6 /* stream */
            ifnull 21
            aload 6 /* stream */
            invokevirtual java.io.InputStreamReader.close:()V
            goto 21
      StackMap locals: org.apache.commons.vfs2.provider.sftp.SftpFileSystem java.lang.String java.lang.StringBuilder com.jcraft.jsch.ChannelExec java.lang.Throwable java.lang.Throwable java.io.InputStreamReader
      StackMap stack: java.lang.Throwable
        13: astore 4
            aload 6 /* stream */
            ifnull 14
            aload 6 /* stream */
            invokevirtual java.io.InputStreamReader.close:()V
        end local 6 // java.io.InputStreamReader stream
      StackMap locals:
      StackMap stack:
        14: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 5
            aload 4
            ifnonnull 16
            aload 5
            astore 4
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 4
            aload 5
            if_acmpeq 17
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 4
            athrow
        18: .line 310
      StackMap locals:
      StackMap stack:
            ldc 100
            invokestatic java.lang.Thread.sleep:(J)V
        19: .line 311
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Exception
        20: pop
        21: .line 308
      StackMap locals:
      StackMap stack:
            aload 3 /* channel */
            invokevirtual com.jcraft.jsch.ChannelExec.isClosed:()Z
            ifeq 18
        22: .line 315
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 9
        24: .line 316
            aload 3 /* channel */
            invokevirtual com.jcraft.jsch.ChannelExec.disconnect:()V
        25: .line 317
            aload 9
            athrow
        26: .line 316
      StackMap locals:
      StackMap stack:
            aload 3 /* channel */
            invokevirtual com.jcraft.jsch.ChannelExec.disconnect:()V
        27: .line 318
            aload 3 /* channel */
            invokevirtual com.jcraft.jsch.ChannelExec.getExitStatus:()I
            ireturn
        end local 3 // com.jcraft.jsch.ChannelExec channel
        end local 2 // java.lang.StringBuilder output
        end local 1 // java.lang.String command
        end local 0 // org.apache.commons.vfs2.provider.sftp.SftpFileSystem this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   28     0     this  Lorg/apache/commons/vfs2/provider/sftp/SftpFileSystem;
            0   28     1  command  Ljava/lang/String;
            0   28     2   output  Ljava/lang/StringBuilder;
            1   28     3  channel  Lcom/jcraft/jsch/ChannelExec;
            5   14     6   stream  Ljava/io/InputStreamReader;
            8   12     7   buffer  [C
            9   10     8     read  I
           11   12     8     read  I
      Exception table:
        from    to  target  type
           5    12      13  any
           4    15      15  any
          18    19      20  Class java.lang.Exception
           1    23      23  any
    Exceptions:
      throws com.jcraft.jsch.JSchException, java.io.IOException
    MethodParameters:
         Name  Flags
      command  final
      output   final
}
SourceFile: "SftpFileSystem.java"