class sun.nio.fs.WindowsDirectoryStream implements java.nio.file.DirectoryStream<java.nio.file.Path>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.nio.fs.WindowsDirectoryStream
  super_class: java.lang.Object
{
  private final sun.nio.fs.WindowsPath dir;
    descriptor: Lsun/nio/fs/WindowsPath;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.nio.file.DirectoryStream$Filter<? super java.nio.file.Path> filter;
    descriptor: Ljava/nio/file/DirectoryStream$Filter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/nio/file/DirectoryStream$Filter<-Ljava/nio/file/Path;>;

  private final long handle;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final sun.nio.fs.NativeBuffer findDataBuffer;
    descriptor: Lsun/nio/fs/NativeBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private boolean isOpen;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Iterator<java.nio.file.Path> iterator;
    descriptor: Ljava/util/Iterator;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Iterator<Ljava/nio/file/Path;>;

  void <init>(sun.nio.fs.WindowsPath, java.nio.file.DirectoryStream$Filter<? super java.nio.file.Path>);
    descriptor: (Lsun/nio/fs/WindowsPath;Ljava/nio/file/DirectoryStream$Filter;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.nio.fs.WindowsDirectoryStream this
        start local 1 // sun.nio.fs.WindowsPath dir
        start local 2 // java.nio.file.DirectoryStream$Filter filter
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 55
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.fs.WindowsDirectoryStream.closeLock:Ljava/lang/Object;
         2: .line 58
            aload 0 /* this */
            iconst_1
            putfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
         3: .line 65
            aload 0 /* this */
            aload 1 /* dir */
            putfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
         4: .line 66
            aload 0 /* this */
            aload 2 /* filter */
            putfield sun.nio.fs.WindowsDirectoryStream.filter:Ljava/nio/file/DirectoryStream$Filter;
         5: .line 70
            aload 1 /* dir */
            invokevirtual sun.nio.fs.WindowsPath.getPathForWin32Calls:()Ljava/lang/String;
            astore 3 /* search */
        start local 3 // java.lang.String search
         6: .line 71
            aload 3 /* search */
            aload 3 /* search */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* last */
        start local 4 // char last
         7: .line 72
            iload 4 /* last */
            bipush 58
            if_icmpeq 8
            iload 4 /* last */
            bipush 92
            if_icmpne 10
         8: .line 73
      StackMap locals: sun.nio.fs.WindowsDirectoryStream sun.nio.fs.WindowsPath java.nio.file.DirectoryStream$Filter java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 3 /* search */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* search */
         9: .line 74
            goto 11
        10: .line 75
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 3 /* search */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\\*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* search */
        11: .line 78
      StackMap locals:
      StackMap stack:
            aload 3 /* search */
            invokestatic sun.nio.fs.WindowsNativeDispatcher.FindFirstFile:(Ljava/lang/String;)Lsun/nio/fs/WindowsNativeDispatcher$FirstFile;
            astore 5 /* first */
        start local 5 // sun.nio.fs.WindowsNativeDispatcher$FirstFile first
        12: .line 79
            aload 0 /* this */
            aload 5 /* first */
            invokevirtual sun.nio.fs.WindowsNativeDispatcher$FirstFile.handle:()J
            putfield sun.nio.fs.WindowsDirectoryStream.handle:J
        13: .line 80
            aload 0 /* this */
            aload 5 /* first */
            invokevirtual sun.nio.fs.WindowsNativeDispatcher$FirstFile.name:()Ljava/lang/String;
            putfield sun.nio.fs.WindowsDirectoryStream.firstName:Ljava/lang/String;
        14: .line 81
            aload 0 /* this */
            invokestatic sun.nio.fs.WindowsFileAttributes.getBufferForFindData:()Lsun/nio/fs/NativeBuffer;
            putfield sun.nio.fs.WindowsDirectoryStream.findDataBuffer:Lsun/nio/fs/NativeBuffer;
        end local 5 // sun.nio.fs.WindowsNativeDispatcher$FirstFile first
        end local 4 // char last
        end local 3 // java.lang.String search
        15: .line 82
            goto 21
      StackMap locals: sun.nio.fs.WindowsDirectoryStream sun.nio.fs.WindowsPath java.nio.file.DirectoryStream$Filter
      StackMap stack: sun.nio.fs.WindowsException
        16: astore 3 /* x */
        start local 3 // sun.nio.fs.WindowsException x
        17: .line 83
            aload 3 /* x */
            invokevirtual sun.nio.fs.WindowsException.lastError:()I
            sipush 267
            if_icmpne 19
        18: .line 84
            new java.nio.file.NotDirectoryException
            dup
            aload 1 /* dir */
            invokevirtual sun.nio.fs.WindowsPath.getPathForExceptionMessage:()Ljava/lang/String;
            invokespecial java.nio.file.NotDirectoryException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 86
      StackMap locals: sun.nio.fs.WindowsException
      StackMap stack:
            aload 3 /* x */
            aload 1 /* dir */
            invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
        20: .line 89
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 3 // sun.nio.fs.WindowsException x
        21: .line 91
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.nio.file.DirectoryStream$Filter filter
        end local 1 // sun.nio.fs.WindowsPath dir
        end local 0 // sun.nio.fs.WindowsDirectoryStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0    this  Lsun/nio/fs/WindowsDirectoryStream;
            0   22     1     dir  Lsun/nio/fs/WindowsPath;
            0   22     2  filter  Ljava/nio/file/DirectoryStream$Filter<-Ljava/nio/file/Path;>;
            6   15     3  search  Ljava/lang/String;
            7   15     4    last  C
           12   15     5   first  Lsun/nio/fs/WindowsNativeDispatcher$FirstFile;
           17   21     3       x  Lsun/nio/fs/WindowsException;
      Exception table:
        from    to  target  type
           5    15      16  Class sun.nio.fs.WindowsException
    Exceptions:
      throws java.io.IOException
    Signature: (Lsun/nio/fs/WindowsPath;Ljava/nio/file/DirectoryStream$Filter<-Ljava/nio/file/Path;>;)V
    MethodParameters:
        Name  Flags
      dir     
      filter  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.fs.WindowsDirectoryStream this
         0: .line 97
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.closeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 98
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
            ifne 4
         2: .line 99
            aload 1
            monitorexit
         3: return
         4: .line 100
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
         5: .line 97
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.findDataBuffer:Lsun/nio/fs/NativeBuffer;
            invokevirtual sun.nio.fs.NativeBuffer.release:()V
        10: .line 104
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.handle:J
            invokestatic sun.nio.fs.WindowsNativeDispatcher.FindClose:(J)V
        11: .line 105
            goto 14
      StackMap locals:
      StackMap stack: sun.nio.fs.WindowsException
        12: astore 1 /* x */
        start local 1 // sun.nio.fs.WindowsException x
        13: .line 106
            aload 1 /* x */
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
            invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
        end local 1 // sun.nio.fs.WindowsException x
        14: .line 108
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.fs.WindowsDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lsun/nio/fs/WindowsDirectoryStream;
           13   14     1     x  Lsun/nio/fs/WindowsException;
      Exception table:
        from    to  target  type
           1     3       7  any
           4     6       7  any
           7     8       7  any
          10    11      12  Class sun.nio.fs.WindowsException
    Exceptions:
      throws java.io.IOException

  public java.util.Iterator<java.nio.file.Path> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.nio.fs.WindowsDirectoryStream this
         0: .line 112
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
            ifne 2
         1: .line 113
            new java.lang.IllegalStateException
            dup
            ldc "Directory stream is closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         3: .line 116
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.iterator:Ljava/util/Iterator;
            ifnull 5
         4: .line 117
            new java.lang.IllegalStateException
            dup
            ldc "Iterator already obtained"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 118
      StackMap locals: sun.nio.fs.WindowsDirectoryStream
      StackMap stack:
            aload 0 /* this */
            new sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.firstName:Ljava/lang/String;
            invokespecial sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator.<init>:(Lsun/nio/fs/WindowsDirectoryStream;Ljava/lang/String;)V
            putfield sun.nio.fs.WindowsDirectoryStream.iterator:Ljava/util/Iterator;
         6: .line 119
            aload 0 /* this */
            getfield sun.nio.fs.WindowsDirectoryStream.iterator:Ljava/util/Iterator;
            aload 1
            monitorexit
         7: areturn
         8: .line 115
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         9: athrow
        end local 0 // sun.nio.fs.WindowsDirectoryStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/nio/fs/WindowsDirectoryStream;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
    Signature: ()Ljava/util/Iterator<Ljava/nio/file/Path;>;
}
Signature: Ljava/lang/Object;Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
SourceFile: "WindowsDirectoryStream.java"
NestMembers:
  sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator
InnerClasses:
  public abstract Filter = java.nio.file.DirectoryStream$Filter of java.nio.file.DirectoryStream
  private WindowsDirectoryIterator = sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator of sun.nio.fs.WindowsDirectoryStream
  FirstFile = sun.nio.fs.WindowsNativeDispatcher$FirstFile of sun.nio.fs.WindowsNativeDispatcher