public class org.eclipse.jetty.server.resource.InputStreamRangeWriter implements org.eclipse.jetty.server.resource.RangeWriter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.server.resource.InputStreamRangeWriter
super_class: java.lang.Object
{
public static final int NO_PROGRESS_LIMIT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private final org.eclipse.jetty.server.resource.InputStreamRangeWriter$InputStreamSupplier inputStreamSupplier;
descriptor: Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter$InputStreamSupplier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.io.InputStream inputStream;
descriptor: Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
private long pos;
descriptor: J
flags: (0x0002) ACC_PRIVATE
public void <init>(org.eclipse.jetty.server.resource.InputStreamRangeWriter$InputStreamSupplier);
descriptor: (Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter$InputStreamSupplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.closed:Z
2: aload 0
aload 1
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStreamSupplier:Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter$InputStreamSupplier;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter;
0 4 1 inputStreamSupplier Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter$InputStreamSupplier;
MethodParameters:
Name Flags
inputStreamSupplier
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.closed:Z
1: aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStream:Ljava/io/InputStream;
ifnull 3
2: aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStream:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter;
Exceptions:
throws java.io.IOException
public void writeTo(java.io.OutputStream, long, long);
descriptor: (Ljava/io/OutputStream;JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.closed:Z
ifeq 2
1: new java.io.IOException
dup
ldc "RangeWriter is closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStream:Ljava/io/InputStream;
ifnonnull 5
3: aload 0
aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStreamSupplier:Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter$InputStreamSupplier;
invokeinterface org.eclipse.jetty.server.resource.InputStreamRangeWriter$InputStreamSupplier.newInputStream:()Ljava/io/InputStream;
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStream:Ljava/io/InputStream;
4: aload 0
lconst_0
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
5: StackMap locals:
StackMap stack:
lload 2
aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
lcmp
ifge 9
6: aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStream:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
7: aload 0
aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStreamSupplier:Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter$InputStreamSupplier;
invokeinterface org.eclipse.jetty.server.resource.InputStreamRangeWriter$InputStreamSupplier.newInputStream:()Ljava/io/InputStream;
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStream:Ljava/io/InputStream;
8: aload 0
lconst_0
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
9: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
lload 2
lcmp
ifge 26
10: aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
lstore 6
start local 6 11: iconst_3
istore 10
start local 10 12: goto 22
13: StackMap locals: org.eclipse.jetty.server.resource.InputStreamRangeWriter java.io.OutputStream long long long top top int
StackMap stack:
aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStream:Ljava/io/InputStream;
lload 2
lload 6
lsub
invokevirtual java.io.InputStream.skip:(J)J
lstore 8
start local 8 14: lload 8
lconst_0
lcmp
ifne 17
15: iinc 10 -1
16: goto 22
17: StackMap locals: org.eclipse.jetty.server.resource.InputStreamRangeWriter java.io.OutputStream long long long long int
StackMap stack:
lload 8
lconst_0
lcmp
ifle 21
18: lload 6
lload 8
ladd
lstore 6
19: iconst_3
istore 10
20: goto 22
21: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "EOF reached before InputStream skip destination"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 8 22: StackMap locals: org.eclipse.jetty.server.resource.InputStreamRangeWriter java.io.OutputStream long long long top top int
StackMap stack:
iload 10
ifle 23
lload 6
lload 2
lcmp
iflt 13
23: StackMap locals:
StackMap stack:
iload 10
ifgt 25
24: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "No progress made to reach InputStream skip position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 2
aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
lsub
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 0
lload 2
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
end local 10 end local 6 26: StackMap locals: org.eclipse.jetty.server.resource.InputStreamRangeWriter java.io.OutputStream long long
StackMap stack:
aload 0
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.inputStream:Ljava/io/InputStream;
aload 1
lload 4
invokestatic org.eclipse.jetty.util.IO.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;J)V
27: aload 0
dup
getfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
lload 4
ladd
putfield org.eclipse.jetty.server.resource.InputStreamRangeWriter.pos:J
28: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/eclipse/jetty/server/resource/InputStreamRangeWriter;
0 29 1 outputStream Ljava/io/OutputStream;
0 29 2 skipTo J
0 29 4 length J
11 26 6 skipSoFar J
14 22 8 actualSkipped J
12 26 10 noProgressLoopLimit I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
outputStream
skipTo
length
}
SourceFile: "InputStreamRangeWriter.java"
NestMembers:
org.eclipse.jetty.server.resource.InputStreamRangeWriter$InputStreamSupplier
InnerClasses:
public abstract InputStreamSupplier = org.eclipse.jetty.server.resource.InputStreamRangeWriter$InputStreamSupplier of org.eclipse.jetty.server.resource.InputStreamRangeWriter