final class com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile extends java.lang.ref.WeakReference<com.sun.xml.internal.org.jvnet.mimepull.DataFile>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile
super_class: java.lang.ref.WeakReference
{
private static final java.util.logging.Logger LOGGER;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static int TIMEOUT;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.ref.ReferenceQueue<com.sun.xml.internal.org.jvnet.mimepull.DataFile> refQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/lang/ref/ReferenceQueue<Lcom/sun/xml/internal/org/jvnet/mimepull/DataFile;>;
private static java.util.List<com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile> refList;
descriptor: Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/List<Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;>;
private final java.io.File file;
descriptor: Ljava/io/File;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.RandomAccessFile raf;
descriptor: Ljava/io/RandomAccessFile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static boolean hasCleanUpExecutor;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=3, args_size=0
0: ldc Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
1: bipush 10
putstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.TIMEOUT:I
2: new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.refQueue:Ljava/lang/ref/ReferenceQueue;
3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.refList:Ljava/util/List;
4: iconst_0
putstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.hasCleanUpExecutor:Z
5: bipush 10
istore 0
start local 0 6: ldc "com.sun.xml.internal.org.jvnet.mimepull.delay"
bipush 10
invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
istore 0
7: goto 13
StackMap locals: int
StackMap stack: java.lang.SecurityException
8: pop
9: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.CONFIG:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 13
10: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.CONFIG:Ljava/util/logging/Level;
ldc "Cannot read ''{0}'' property, using defaults."
11: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "com.sun.xml.internal.org.jvnet.mimepull.delay"
aastore
12: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals:
StackMap stack:
invokestatic com.sun.xml.internal.org.jvnet.mimepull.CleanUpExecutorFactory.newInstance:()Lcom/sun/xml/internal/org/jvnet/mimepull/CleanUpExecutorFactory;
astore 1
start local 1 14: aload 1
ifnull 20
15: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 17
16: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Initializing clean up executor for MIMEPULL: {0}"
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
17: StackMap locals: com.sun.xml.internal.org.jvnet.mimepull.CleanUpExecutorFactory
StackMap stack:
aload 1
invokevirtual com.sun.xml.internal.org.jvnet.mimepull.CleanUpExecutorFactory.getScheduledExecutorService:()Ljava/util/concurrent/ScheduledExecutorService;
astore 2
start local 2 18: aload 2
new com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile$CleanupRunnable
dup
invokespecial com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile$CleanupRunnable.<init>:()V
iload 0
i2l
iload 0
i2l
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
pop
19: iconst_1
putstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.hasCleanUpExecutor:Z
end local 2 end local 1 end local 0 20: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
6 20 0 delay I
14 20 1 executorFactory Lcom/sun/xml/internal/org/jvnet/mimepull/CleanUpExecutorFactory;
18 20 2 scheduler Ljava/util/concurrent/ScheduledExecutorService;
Exception table:
from to target type
6 7 8 Class java.lang.SecurityException
void <init>(com.sun.xml.internal.org.jvnet.mimepull.DataFile, java.io.File);
descriptor: (Lcom/sun/xml/internal/org/jvnet/mimepull/DataFile;Ljava/io/File;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.refQueue:Ljava/lang/ref/ReferenceQueue;
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
1: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.refList:Ljava/util/List;
aload 0
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 0
aload 2
putfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.file:Ljava/io/File;
3: aload 0
new java.io.RandomAccessFile
dup
aload 2
ldc "rw"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
putfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.raf:Ljava/io/RandomAccessFile;
4: goto 7
StackMap locals: com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile com.sun.xml.internal.org.jvnet.mimepull.DataFile java.io.File
StackMap stack: java.io.IOException
5: astore 3
start local 3 6: new com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException
dup
aload 3
invokespecial com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 7: StackMap locals:
StackMap stack:
getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.hasCleanUpExecutor:Z
ifne 9
8: invokestatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.drainRefQueueBounded:()V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;
0 10 1 df Lcom/sun/xml/internal/org/jvnet/mimepull/DataFile;
0 10 2 file Ljava/io/File;
6 7 3 ioe Ljava/io/IOException;
Exception table:
from to target type
3 4 5 Class java.io.IOException
MethodParameters:
Name Flags
df
file
synchronized void read(long, byte[], int, int);
descriptor: (J[BII)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.raf:Ljava/io/RandomAccessFile;
lload 1
invokevirtual java.io.RandomAccessFile.seek:(J)V
1: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.raf:Ljava/io/RandomAccessFile;
aload 3
iload 4
iload 5
invokevirtual java.io.RandomAccessFile.readFully:([BII)V
2: goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: astore 6
start local 6 4: new com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException
dup
aload 6
invokespecial com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 6 5: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;
0 6 1 pointer J
0 6 3 buf [B
0 6 4 offset I
0 6 5 length I
4 5 6 ioe Ljava/io/IOException;
Exception table:
from to target type
0 2 3 Class java.io.IOException
MethodParameters:
Name Flags
pointer
buf
offset
length
synchronized long writeTo(long, byte[], int, int);
descriptor: (J[BII)J
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.raf:Ljava/io/RandomAccessFile;
lload 1
invokevirtual java.io.RandomAccessFile.seek:(J)V
1: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.raf:Ljava/io/RandomAccessFile;
aload 3
iload 4
iload 5
invokevirtual java.io.RandomAccessFile.write:([BII)V
2: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.raf:Ljava/io/RandomAccessFile;
invokevirtual java.io.RandomAccessFile.getFilePointer:()J
3: lreturn
4: StackMap locals:
StackMap stack: java.io.IOException
astore 6
start local 6 5: new com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException
dup
aload 6
invokespecial com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;
0 6 1 pointer J
0 6 3 data [B
0 6 4 offset I
0 6 5 length I
5 6 6 ioe Ljava/io/IOException;
Exception table:
from to target type
0 3 4 Class java.io.IOException
MethodParameters:
Name Flags
pointer
data
offset
length
void close();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 2
1: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Deleting file = {0}"
aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.file:Ljava/io/File;
invokevirtual java.io.File.getName:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.refList:Ljava/util/List;
aload 0
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.raf:Ljava/io/RandomAccessFile;
invokevirtual java.io.RandomAccessFile.close:()V
4: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.file:Ljava/io/File;
invokevirtual java.io.File.delete:()Z
istore 1
start local 1 5: iload 1
ifne 11
6: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 11
7: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
ldc "File {0} was not deleted"
aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.file:Ljava/io/File;
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
end local 1 8: goto 11
StackMap locals:
StackMap stack: java.io.IOException
9: astore 1
start local 1 10: new com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException
dup
aload 1
invokespecial com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;
5 8 1 deleted Z
10 11 1 ioe Ljava/io/IOException;
Exception table:
from to target type
3 8 9 Class java.io.IOException
void renameTo(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0000)
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 2
1: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Moving file={0} to={1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.file:Ljava/io/File;
aastore
dup
iconst_1
aload 1
aastore
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.refList:Ljava/util/List;
aload 0
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.raf:Ljava/io/RandomAccessFile;
invokevirtual java.io.RandomAccessFile.close:()V
4: aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.file:Ljava/io/File;
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
aload 1
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
astore 2
start local 2 5: aload 1
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
aload 2
invokeinterface java.nio.file.Path.equals:(Ljava/lang/Object;)Z
istore 3
start local 3 6: iload 3
ifne 13
7: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 13
8: new com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException
dup
new java.lang.StringBuilder
dup
ldc "File "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.file:Ljava/io/File;
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc " was not moved to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 11: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 12: new com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException
dup
aload 2
invokespecial com.sun.xml.internal.org.jvnet.mimepull.MIMEParsingException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;
0 14 1 f Ljava/io/File;
5 11 2 target Ljava/nio/file/Path;
6 11 3 renamed Z
12 13 2 ioe Ljava/io/IOException;
Exception table:
from to target type
3 11 11 Class java.io.IOException
MethodParameters:
Name Flags
f
static void drainRefQueueBounded();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: goto 4
start local 0 1: StackMap locals: com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile
StackMap stack:
getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 3
2: getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Cleaning file = {0} from reference queue."
aload 0
getfield com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.file:Ljava/io/File;
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.close:()V
end local 0 4: StackMap locals:
StackMap stack:
getstatic com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile.refQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
checkcast com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile
dup
astore 0
start local 0 5: ifnonnull 1
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 weak Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;
5 7 0 weak Lcom/sun/xml/internal/org/jvnet/mimepull/WeakDataFile;
}
Signature: Ljava/lang/ref/WeakReference<Lcom/sun/xml/internal/org/jvnet/mimepull/DataFile;>;
SourceFile: "WeakDataFile.java"
NestMembers:
com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile$CleanupRunnable
InnerClasses:
private CleanupRunnable = com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile$CleanupRunnable of com.sun.xml.internal.org.jvnet.mimepull.WeakDataFile