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 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.fs.WindowsDirectoryStream.closeLock:Ljava/lang/Object;
2: aload 0
iconst_1
putfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
3: aload 0
aload 1
putfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
4: aload 0
aload 2
putfield sun.nio.fs.WindowsDirectoryStream.filter:Ljava/nio/file/DirectoryStream$Filter;
5: aload 1
invokevirtual sun.nio.fs.WindowsPath.getPathForWin32Calls:()Ljava/lang/String;
astore 3
start local 3 6: aload 3
aload 3
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
istore 4
start local 4 7: iload 4
bipush 58
if_icmpeq 8
iload 4
bipush 92
if_icmpne 10
8: 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
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
9: goto 11
10: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 3
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
11: StackMap locals:
StackMap stack:
aload 3
invokestatic sun.nio.fs.WindowsNativeDispatcher.FindFirstFile:(Ljava/lang/String;)Lsun/nio/fs/WindowsNativeDispatcher$FirstFile;
astore 5
start local 5 12: aload 0
aload 5
invokevirtual sun.nio.fs.WindowsNativeDispatcher$FirstFile.handle:()J
putfield sun.nio.fs.WindowsDirectoryStream.handle:J
13: aload 0
aload 5
invokevirtual sun.nio.fs.WindowsNativeDispatcher$FirstFile.name:()Ljava/lang/String;
putfield sun.nio.fs.WindowsDirectoryStream.firstName:Ljava/lang/String;
14: aload 0
invokestatic sun.nio.fs.WindowsFileAttributes.getBufferForFindData:()Lsun/nio/fs/NativeBuffer;
putfield sun.nio.fs.WindowsDirectoryStream.findDataBuffer:Lsun/nio/fs/NativeBuffer;
end local 5 end local 4 end local 3 15: 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
start local 3 17: aload 3
invokevirtual sun.nio.fs.WindowsException.lastError:()I
sipush 267
if_icmpne 19
18: new java.nio.file.NotDirectoryException
dup
aload 1
invokevirtual sun.nio.fs.WindowsPath.getPathForExceptionMessage:()Ljava/lang/String;
invokespecial java.nio.file.NotDirectoryException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals: sun.nio.fs.WindowsException
StackMap stack:
aload 3
aload 1
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
20: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 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 0: aload 0
getfield sun.nio.fs.WindowsDirectoryStream.closeLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
ifne 4
2: aload 1
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_0
putfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
5: aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.WindowsDirectoryStream.findDataBuffer:Lsun/nio/fs/NativeBuffer;
invokevirtual sun.nio.fs.NativeBuffer.release:()V
10: aload 0
getfield sun.nio.fs.WindowsDirectoryStream.handle:J
invokestatic sun.nio.fs.WindowsNativeDispatcher.FindClose:(J)V
11: goto 14
StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
12: astore 1
start local 1 13: aload 1
aload 0
getfield sun.nio.fs.WindowsDirectoryStream.dir:Lsun/nio/fs/WindowsPath;
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 1 14: StackMap locals:
StackMap stack:
return
end local 0 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 0: aload 0
getfield sun.nio.fs.WindowsDirectoryStream.isOpen:Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Directory stream is closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 1
monitorenter
3: aload 0
getfield sun.nio.fs.WindowsDirectoryStream.iterator:Ljava/util/Iterator;
ifnull 5
4: new java.lang.IllegalStateException
dup
ldc "Iterator already obtained"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: sun.nio.fs.WindowsDirectoryStream
StackMap stack:
aload 0
new sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator
dup
aload 0
aload 0
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: aload 0
getfield sun.nio.fs.WindowsDirectoryStream.iterator:Ljava/util/Iterator;
aload 1
monitorexit
7: areturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
9: athrow
end local 0 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