public class org.jboss.resteasy.plugins.providers.FileProvider implements javax.ws.rs.ext.MessageBodyReader<java.io.File>, org.jboss.resteasy.spi.AsyncMessageBodyWriter<java.io.File>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jboss.resteasy.plugins.providers.FileProvider
super_class: java.lang.Object
{
private static final java.lang.String PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "pfx"
private static final java.lang.String SUFFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "sfx"
private java.lang.String _downloadDirectory;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield org.jboss.resteasy.plugins.providers.FileProvider._downloadDirectory:Ljava/lang/String;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
public boolean isReadable(java.lang.Class<?>, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: ldc Ljava/io/File;
aload 1
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
0 2 1 type Ljava/lang/Class<*>;
0 2 2 genericType Ljava/lang/reflect/Type;
0 2 3 annotations [Ljava/lang/annotation/Annotation;
0 2 4 mediaType Ljavax/ws/rs/core/MediaType;
Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;)Z
MethodParameters:
Name Flags
type
genericType
annotations
mediaType
public java.io.File readFrom(java.lang.Class<java.io.File>, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String, java.lang.String>, java.io.InputStream);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Ljava/io/InputStream;)Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: getstatic org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.LOGGER:Lorg/jboss/resteasy/resteasy_jaxrs/i18n/LogMessages;
ldc "Provider : %s, Method : readFrom"
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
1: aconst_null
astore 7
start local 7 2: aload 0
getfield org.jboss.resteasy.plugins.providers.FileProvider._downloadDirectory:Ljava/lang/String;
ifnull 9
3: ldc "pfx"
ldc "sfx"
new java.io.File
dup
4: aload 0
getfield org.jboss.resteasy.plugins.providers.FileProvider._downloadDirectory:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
5: invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
astore 7
6: goto 9
7: StackMap locals: org.jboss.resteasy.plugins.providers.FileProvider java.lang.Class java.lang.reflect.Type java.lang.annotation.Annotation[] javax.ws.rs.core.MediaType javax.ws.rs.core.MultivaluedMap java.io.InputStream java.io.File
StackMap stack: java.io.IOException
pop
8: getstatic org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.LOGGER:Lorg/jboss/resteasy/resteasy_jaxrs/i18n/LogMessages;
aload 0
getfield org.jboss.resteasy.plugins.providers.FileProvider._downloadDirectory:Ljava/lang/String;
invokeinterface org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.couldNotBindToDirectory:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 7
ifnonnull 11
10: ldc "pfx"
ldc "sfx"
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 7
11: StackMap locals:
StackMap stack:
ldc Lorg/jboss/resteasy/plugins/server/Cleanables;
invokestatic org.jboss.resteasy.core.ResteasyContext.getContextData:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.jboss.resteasy.plugins.server.Cleanables
astore 8
start local 8 12: aload 8
ifnull 15
13: aload 8
new org.jboss.resteasy.plugins.providers.FileProvider$FileHolder
dup
aload 7
invokespecial org.jboss.resteasy.plugins.providers.FileProvider$FileHolder.<init>:(Ljava/io/File;)V
invokevirtual org.jboss.resteasy.plugins.server.Cleanables.addCleanable:(Lorg/jboss/resteasy/plugins/server/Cleanable;)V
14: goto 16
15: StackMap locals: org.jboss.resteasy.plugins.server.Cleanables
StackMap stack:
getstatic org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.LOGGER:Lorg/jboss/resteasy/resteasy_jaxrs/i18n/LogMessages;
aload 7
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokeinterface org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.temporaryFileCreated:(Ljava/lang/String;)V
16: StackMap locals:
StackMap stack:
aload 5
invokestatic org.jboss.resteasy.util.NoContent.isContentLengthZero:(Ljavax/ws/rs/core/MultivaluedMap;)Z
ifeq 17
aload 7
areturn
17: StackMap locals:
StackMap stack:
new java.io.BufferedOutputStream
dup
new java.io.FileOutputStream
dup
18: aload 7
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
19: invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 9
start local 9 20: aload 6
aload 9
invokestatic org.jboss.resteasy.plugins.providers.ProviderHelper.writeTo:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
21: goto 25
22: StackMap locals: org.jboss.resteasy.plugins.providers.FileProvider java.lang.Class java.lang.reflect.Type java.lang.annotation.Annotation[] javax.ws.rs.core.MediaType javax.ws.rs.core.MultivaluedMap java.io.InputStream java.io.File org.jboss.resteasy.plugins.server.Cleanables java.io.OutputStream
StackMap stack: java.lang.Throwable
astore 10
23: aload 9
invokevirtual java.io.OutputStream.close:()V
24: aload 10
athrow
25: StackMap locals:
StackMap stack:
aload 9
invokevirtual java.io.OutputStream.close:()V
26: aload 7
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
0 27 1 type Ljava/lang/Class<Ljava/io/File;>;
0 27 2 genericType Ljava/lang/reflect/Type;
0 27 3 annotations [Ljava/lang/annotation/Annotation;
0 27 4 mediaType Ljavax/ws/rs/core/MediaType;
0 27 5 httpHeaders Ljavax/ws/rs/core/MultivaluedMap<Ljava/lang/String;Ljava/lang/String;>;
0 27 6 entityStream Ljava/io/InputStream;
2 27 7 downloadedFile Ljava/io/File;
12 27 8 cleanables Lorg/jboss/resteasy/plugins/server/Cleanables;
20 27 9 output Ljava/io/OutputStream;
Exception table:
from to target type
3 6 7 Class java.io.IOException
20 22 22 any
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/Class<Ljava/io/File;>;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap<Ljava/lang/String;Ljava/lang/String;>;Ljava/io/InputStream;)Ljava/io/File;
MethodParameters:
Name Flags
type
genericType
annotations
mediaType
httpHeaders
entityStream
public boolean isWriteable(java.lang.Class<?>, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: ldc Ljava/io/File;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 1
aload 4
invokestatic org.jboss.resteasy.util.MediaTypeHelper.isBlacklisted:(Ljavax/ws/rs/core/MediaType;)Z
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
0 2 1 type Ljava/lang/Class<*>;
0 2 2 genericType Ljava/lang/reflect/Type;
0 2 3 annotations [Ljava/lang/annotation/Annotation;
0 2 4 mediaType Ljavax/ws/rs/core/MediaType;
Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;)Z
MethodParameters:
Name Flags
type
genericType
annotations
mediaType
public long getSize(java.io.File, java.lang.Class<?>, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType);
descriptor: (Ljava/io/File;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokevirtual java.io.File.length:()J
lreturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
0 1 1 o Ljava/io/File;
0 1 2 type Ljava/lang/Class<*>;
0 1 3 genericType Ljava/lang/reflect/Type;
0 1 4 annotations [Ljava/lang/annotation/Annotation;
0 1 5 mediaType Ljavax/ws/rs/core/MediaType;
Signature: (Ljava/io/File;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;)J
MethodParameters:
Name Flags
o
type
genericType
annotations
mediaType
public void writeTo(java.io.File, java.lang.Class<?>, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String, java.lang.Object>, java.io.OutputStream);
descriptor: (Ljava/io/File;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Ljava/io/OutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=19, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: getstatic org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.LOGGER:Lorg/jboss/resteasy/resteasy_jaxrs/i18n/LogMessages;
ldc "Provider : %s, Method : readFrom"
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
1: ldc Ljavax/ws/rs/core/HttpHeaders;
invokestatic org.jboss.resteasy.core.ResteasyContext.getContextData:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast javax.ws.rs.core.HttpHeaders
astore 8
start local 8 2: aload 8
ifnonnull 5
3: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Ljava/io/OutputStream;)V
4: return
5: StackMap locals: javax.ws.rs.core.HttpHeaders
StackMap stack:
aload 8
invokeinterface javax.ws.rs.core.HttpHeaders.getRequestHeaders:()Ljavax/ws/rs/core/MultivaluedMap;
ldc "Range"
invokeinterface javax.ws.rs.core.MultivaluedMap.getFirst:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 6: aload 9
ifnonnull 9
7: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Ljava/io/OutputStream;)V
8: return
9: StackMap locals: java.lang.String
StackMap stack:
aload 9
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 9
10: aload 9
ldc "bytes="
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 10
start local 10 11: iload 10
ifge 14
12: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Ljava/io/OutputStream;)V
13: return
14: StackMap locals: int
StackMap stack:
aload 9
ldc "bytes="
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 9
15: aload 9
bipush 44
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmple 18
16: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Ljava/io/OutputStream;)V
17: return
18: StackMap locals:
StackMap stack:
aload 9
bipush 45
invokevirtual java.lang.String.indexOf:(I)I
istore 11
start local 11 19: iload 11
ifge 22
20: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Ljava/io/OutputStream;)V
21: return
22: StackMap locals: int
StackMap stack:
iload 11
ifne 29
23: aload 1
invokevirtual java.io.File.length:()J
lstore 12
start local 12 24: aload 9
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 14
start local 14 25: lload 12
lload 14
ladd
lconst_1
lcmp
ifge 28
26: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Ljava/io/OutputStream;)V
27: return
28: StackMap locals: long long
StackMap stack:
new org.jboss.resteasy.plugins.providers.FileRangeException
dup
aload 5
aload 1
lload 12
lload 14
ladd
lload 12
lconst_1
lsub
invokespecial org.jboss.resteasy.plugins.providers.FileRangeException.<init>:(Ljavax/ws/rs/core/MediaType;Ljava/io/File;JJ)V
athrow
end local 14 end local 12 29: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.File.length:()J
lstore 12
start local 12 30: aload 9
iconst_0
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 14
start local 14 31: lload 14
lload 12
lcmp
iflt 33
32: new javax.ws.rs.WebApplicationException
dup
sipush 416
invokespecial javax.ws.rs.WebApplicationException.<init>:(I)V
athrow
33: StackMap locals: long long
StackMap stack:
aload 9
ldc "-"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 36
34: lload 12
lconst_1
lsub
lstore 16
start local 16 35: goto 38
end local 16 36: StackMap locals:
StackMap stack:
aload 9
iload 11
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 18
start local 18 37: aload 18
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 16
end local 18 start local 16 38: StackMap locals: long
StackMap stack:
new org.jboss.resteasy.plugins.providers.FileRangeException
dup
aload 5
aload 1
lload 14
lload 16
invokespecial org.jboss.resteasy.plugins.providers.FileRangeException.<init>:(Ljavax/ws/rs/core/MediaType;Ljava/io/File;JJ)V
athrow
end local 16 end local 14 end local 12 39: StackMap locals: org.jboss.resteasy.plugins.providers.FileProvider java.io.File java.lang.Class java.lang.reflect.Type java.lang.annotation.Annotation[] javax.ws.rs.core.MediaType javax.ws.rs.core.MultivaluedMap java.io.OutputStream javax.ws.rs.core.HttpHeaders java.lang.String int int
StackMap stack: java.lang.NumberFormatException
pop
40: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Ljava/io/OutputStream;)V
41: return
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
0 42 1 uploadFile Ljava/io/File;
0 42 2 type Ljava/lang/Class<*>;
0 42 3 genericType Ljava/lang/reflect/Type;
0 42 4 annotations [Ljava/lang/annotation/Annotation;
0 42 5 mediaType Ljavax/ws/rs/core/MediaType;
0 42 6 httpHeaders Ljavax/ws/rs/core/MultivaluedMap<Ljava/lang/String;Ljava/lang/Object;>;
0 42 7 entityStream Ljava/io/OutputStream;
2 42 8 headers Ljavax/ws/rs/core/HttpHeaders;
6 42 9 range Ljava/lang/String;
11 42 10 byteUnit I
19 42 11 separator I
24 29 12 fileSize J
25 29 14 begin J
30 39 12 fileSize J
31 39 14 begin J
35 36 16 end J
38 39 16 end J
37 38 18 substring Ljava/lang/String;
Exception table:
from to target type
29 39 39 Class java.lang.NumberFormatException
Exceptions:
throws java.io.IOException
Signature: (Ljava/io/File;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap<Ljava/lang/String;Ljava/lang/Object;>;Ljava/io/OutputStream;)V
MethodParameters:
Name Flags
uploadFile
type
genericType
annotations
mediaType
httpHeaders
entityStream
protected void writeIt(java.io.File, java.io.OutputStream);
descriptor: (Ljava/io/File;Ljava/io/OutputStream;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.io.BufferedInputStream
dup
new java.io.FileInputStream
dup
aload 1
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 1: aload 3
aload 2
invokestatic org.jboss.resteasy.plugins.providers.ProviderHelper.writeTo:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
2: goto 6
3: StackMap locals: org.jboss.resteasy.plugins.providers.FileProvider java.io.File java.io.OutputStream java.io.InputStream
StackMap stack: java.lang.Throwable
astore 4
4: aload 3
invokevirtual java.io.InputStream.close:()V
5: aload 4
athrow
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.InputStream.close:()V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
0 8 1 uploadFile Ljava/io/File;
0 8 2 entityStream Ljava/io/OutputStream;
1 8 3 inputStream Ljava/io/InputStream;
Exception table:
from to target type
1 3 3 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
uploadFile
entityStream
public java.util.concurrent.CompletionStage<java.lang.Void> asyncWriteTo(java.io.File, java.lang.Class<?>, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String, java.lang.Object>, org.jboss.resteasy.spi.AsyncOutputStream);
descriptor: (Ljava/io/File;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=19, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: getstatic org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.LOGGER:Lorg/jboss/resteasy/resteasy_jaxrs/i18n/LogMessages;
ldc "Provider : %s, Method : readFrom"
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
1: ldc Ljavax/ws/rs/core/HttpHeaders;
invokestatic org.jboss.resteasy.core.ResteasyContext.getContextData:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast javax.ws.rs.core.HttpHeaders
astore 8
start local 8 2: aload 8
ifnonnull 4
3: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
areturn
4: StackMap locals: javax.ws.rs.core.HttpHeaders
StackMap stack:
aload 8
invokeinterface javax.ws.rs.core.HttpHeaders.getRequestHeaders:()Ljavax/ws/rs/core/MultivaluedMap;
ldc "Range"
invokeinterface javax.ws.rs.core.MultivaluedMap.getFirst:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 5: aload 9
ifnonnull 7
6: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
areturn
7: StackMap locals: java.lang.String
StackMap stack:
aload 9
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 9
8: aload 9
ldc "bytes="
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 10
start local 10 9: iload 10
ifge 11
10: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
areturn
11: StackMap locals: int
StackMap stack:
aload 9
ldc "bytes="
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 9
12: aload 9
bipush 44
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmple 14
13: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
areturn
14: StackMap locals:
StackMap stack:
aload 9
bipush 45
invokevirtual java.lang.String.indexOf:(I)I
istore 11
start local 11 15: iload 11
ifge 17
16: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
areturn
17: StackMap locals: int
StackMap stack:
iload 11
ifne 23
18: aload 1
invokevirtual java.io.File.length:()J
lstore 12
start local 12 19: aload 9
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 14
start local 14 20: lload 12
lload 14
ladd
lconst_1
lcmp
ifge 22
21: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
areturn
22: StackMap locals: long long
StackMap stack:
new org.jboss.resteasy.plugins.providers.FileRangeException
dup
aload 5
aload 1
lload 12
lload 14
ladd
lload 12
lconst_1
lsub
invokespecial org.jboss.resteasy.plugins.providers.FileRangeException.<init>:(Ljavax/ws/rs/core/MediaType;Ljava/io/File;JJ)V
invokestatic org.jboss.resteasy.plugins.providers.ProviderHelper.completedException:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletionStage;
areturn
end local 14 end local 12 23: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.File.length:()J
lstore 12
start local 12 24: aload 9
iconst_0
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 14
start local 14 25: lload 14
lload 12
lcmp
iflt 27
26: new javax.ws.rs.WebApplicationException
dup
sipush 416
invokespecial javax.ws.rs.WebApplicationException.<init>:(I)V
athrow
27: StackMap locals: long long
StackMap stack:
aload 9
ldc "-"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 30
28: lload 12
lconst_1
lsub
lstore 16
start local 16 29: goto 32
end local 16 30: StackMap locals:
StackMap stack:
aload 9
iload 11
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 18
start local 18 31: aload 18
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 16
end local 18 start local 16 32: StackMap locals: long
StackMap stack:
new org.jboss.resteasy.plugins.providers.FileRangeException
dup
aload 5
aload 1
lload 14
lload 16
invokespecial org.jboss.resteasy.plugins.providers.FileRangeException.<init>:(Ljavax/ws/rs/core/MediaType;Ljava/io/File;JJ)V
invokestatic org.jboss.resteasy.plugins.providers.ProviderHelper.completedException:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletionStage;
33: areturn
end local 16 end local 14 end local 12 34: StackMap locals: org.jboss.resteasy.plugins.providers.FileProvider java.io.File java.lang.Class java.lang.reflect.Type java.lang.annotation.Annotation[] javax.ws.rs.core.MediaType javax.ws.rs.core.MultivaluedMap org.jboss.resteasy.spi.AsyncOutputStream javax.ws.rs.core.HttpHeaders java.lang.String int int
StackMap stack: java.lang.NumberFormatException
pop
35: aload 0
aload 1
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeIt:(Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
0 36 1 uploadFile Ljava/io/File;
0 36 2 type Ljava/lang/Class<*>;
0 36 3 genericType Ljava/lang/reflect/Type;
0 36 4 annotations [Ljava/lang/annotation/Annotation;
0 36 5 mediaType Ljavax/ws/rs/core/MediaType;
0 36 6 httpHeaders Ljavax/ws/rs/core/MultivaluedMap<Ljava/lang/String;Ljava/lang/Object;>;
0 36 7 entityStream Lorg/jboss/resteasy/spi/AsyncOutputStream;
2 36 8 headers Ljavax/ws/rs/core/HttpHeaders;
5 36 9 range Ljava/lang/String;
9 36 10 byteUnit I
15 36 11 separator I
19 23 12 fileSize J
20 23 14 begin J
24 34 12 fileSize J
25 34 14 begin J
29 30 16 end J
32 34 16 end J
31 32 18 substring Ljava/lang/String;
Exception table:
from to target type
23 33 34 Class java.lang.NumberFormatException
Signature: (Ljava/io/File;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap<Ljava/lang/String;Ljava/lang/Object;>;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage<Ljava/lang/Void;>;
MethodParameters:
Name Flags
uploadFile
type
genericType
annotations
mediaType
httpHeaders
entityStream
protected java.util.concurrent.CompletionStage<java.lang.Void> writeIt(java.io.File, org.jboss.resteasy.spi.AsyncOutputStream);
descriptor: (Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.io.BufferedInputStream
dup
new java.io.FileInputStream
dup
aload 1
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 1: aload 3
aload 2
invokestatic org.jboss.resteasy.plugins.providers.ProviderHelper.writeToAndCloseInput:(Ljava/io/InputStream;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
2: areturn
end local 3 3: StackMap locals:
StackMap stack: java.io.FileNotFoundException
astore 3
start local 3 4: aload 3
invokestatic org.jboss.resteasy.plugins.providers.ProviderHelper.completedException:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletionStage;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jboss/resteasy/plugins/providers/FileProvider;
0 5 1 uploadFile Ljava/io/File;
0 5 2 entityStream Lorg/jboss/resteasy/spi/AsyncOutputStream;
1 3 3 inputStream Ljava/io/InputStream;
4 5 3 e Ljava/io/FileNotFoundException;
Exception table:
from to target type
0 2 3 Class java.io.FileNotFoundException
Signature: (Ljava/io/File;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage<Ljava/lang/Void;>;
MethodParameters:
Name Flags
uploadFile
entityStream
public void writeTo(java.lang.Object, java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap, java.io.OutputStream);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Ljava/io/OutputStream;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=8, locals=8, args_size=8
0: aload 0
aload 1
checkcast java.io.File
aload 2
aload 3
aload 4
aload 5
aload 6
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.writeTo:(Ljava/io/File;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Ljava/io/OutputStream;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException, javax.ws.rs.WebApplicationException
public long getSize(java.lang.Object, java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;)J
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=6, locals=6, args_size=6
0: aload 0
aload 1
checkcast java.io.File
aload 2
aload 3
aload 4
aload 5
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.getSize:(Ljava/io/File;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;)J
lreturn
LocalVariableTable:
Start End Slot Name Signature
public java.util.concurrent.CompletionStage asyncWriteTo(java.lang.Object, java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap, org.jboss.resteasy.spi.AsyncOutputStream);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=8, locals=8, args_size=8
0: aload 0
aload 1
checkcast java.io.File
aload 2
aload 3
aload 4
aload 5
aload 6
aload 7
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.asyncWriteTo:(Ljava/io/File;Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Lorg/jboss/resteasy/spi/AsyncOutputStream;)Ljava/util/concurrent/CompletionStage;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.lang.Object readFrom(java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap, java.io.InputStream);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Ljava/io/InputStream;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=7, locals=7, args_size=7
0: aload 0
aload 1
checkcast java.lang.Class
aload 2
aload 3
aload 4
aload 5
aload 6
invokevirtual org.jboss.resteasy.plugins.providers.FileProvider.readFrom:(Ljava/lang/Class;Ljava/lang/reflect/Type;[Ljava/lang/annotation/Annotation;Ljavax/ws/rs/core/MediaType;Ljavax/ws/rs/core/MultivaluedMap;Ljava/io/InputStream;)Ljava/io/File;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException, javax.ws.rs.WebApplicationException
}
Signature: Ljava/lang/Object;Ljavax/ws/rs/ext/MessageBodyReader<Ljava/io/File;>;Lorg/jboss/resteasy/spi/AsyncMessageBodyWriter<Ljava/io/File;>;
SourceFile: "FileProvider.java"
NestMembers:
org.jboss.resteasy.plugins.providers.FileProvider$FileHolder
InnerClasses:
private FileHolder = org.jboss.resteasy.plugins.providers.FileProvider$FileHolder of org.jboss.resteasy.plugins.providers.FileProvider
RuntimeVisibleAnnotations:
javax.ws.rs.ext.Provider()
javax.ws.rs.Produces(value = {"*/*"})
javax.ws.rs.Consumes(value = {"*/*"})