public class org.springframework.http.codec.ResourceHttpMessageWriter implements org.springframework.http.codec.HttpMessageWriter<org.springframework.core.io.Resource>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.http.codec.ResourceHttpMessageWriter
super_class: java.lang.Object
{
private static final org.springframework.core.ResolvableType REGION_TYPE;
descriptor: Lorg/springframework/core/ResolvableType;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.springframework.core.codec.ResourceEncoder encoder;
descriptor: Lorg/springframework/core/codec/ResourceEncoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.springframework.core.codec.ResourceRegionEncoder regionEncoder;
descriptor: Lorg/springframework/core/codec/ResourceRegionEncoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<org.springframework.http.MediaType> mediaTypes;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/http/MediaType;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/springframework/core/io/support/ResourceRegion;
invokestatic org.springframework.core.ResolvableType.forClass:(Ljava/lang/Class;)Lorg/springframework/core/ResolvableType;
putstatic org.springframework.http.codec.ResourceHttpMessageWriter.REGION_TYPE:Lorg/springframework/core/ResolvableType;
1: ldc Lorg/springframework/http/codec/ResourceHttpMessageWriter;
invokestatic org.springframework.http.HttpLogging.forLogName:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
sipush 4096
invokespecial org.springframework.http.codec.ResourceHttpMessageWriter.<init>:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.springframework.core.codec.ResourceEncoder
dup
iload 1
invokespecial org.springframework.core.codec.ResourceEncoder.<init>:(I)V
putfield org.springframework.http.codec.ResourceHttpMessageWriter.encoder:Lorg/springframework/core/codec/ResourceEncoder;
2: aload 0
new org.springframework.core.codec.ResourceRegionEncoder
dup
iload 1
invokespecial org.springframework.core.codec.ResourceRegionEncoder.<init>:(I)V
putfield org.springframework.http.codec.ResourceHttpMessageWriter.regionEncoder:Lorg/springframework/core/codec/ResourceRegionEncoder;
3: aload 0
aload 0
getfield org.springframework.http.codec.ResourceHttpMessageWriter.encoder:Lorg/springframework/core/codec/ResourceEncoder;
invokevirtual org.springframework.core.codec.ResourceEncoder.getEncodableMimeTypes:()Ljava/util/List;
invokestatic org.springframework.http.MediaType.asMediaTypes:(Ljava/util/List;)Ljava/util/List;
putfield org.springframework.http.codec.ResourceHttpMessageWriter.mediaTypes:Ljava/util/List;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
0 5 1 bufferSize I
MethodParameters:
Name Flags
bufferSize
public boolean canWrite(org.springframework.core.ResolvableType, org.springframework.http.MediaType);
descriptor: (Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.http.codec.ResourceHttpMessageWriter.encoder:Lorg/springframework/core/codec/ResourceEncoder;
aload 1
aload 2
invokevirtual org.springframework.core.codec.ResourceEncoder.canEncode:(Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
0 1 1 elementType Lorg/springframework/core/ResolvableType;
0 1 2 mediaType Lorg/springframework/http/MediaType;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
elementType
mediaType
public java.util.List<org.springframework.http.MediaType> getWritableMediaTypes();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.codec.ResourceHttpMessageWriter.mediaTypes:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
Signature: ()Ljava/util/List<Lorg/springframework/http/MediaType;>;
public reactor.core.publisher.Mono<java.lang.Void> write(org.reactivestreams.Publisher<? extends org.springframework.core.io.Resource>, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lorg/reactivestreams/Publisher;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, 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
invokestatic reactor.core.publisher.Mono.from:(Lorg/reactivestreams/Publisher;)Lreactor/core/publisher/Mono;
aload 0
aload 2
aload 3
aload 4
aload 5
invokedynamic apply(Lorg/springframework/http/codec/ResourceHttpMessageWriter;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/springframework/http/codec/ResourceHttpMessageWriter.lambda$0(Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono; (7)
(Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono;
invokevirtual reactor.core.publisher.Mono.flatMap:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
areturn
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/springframework/http/codec/ResourceHttpMessageWriter;
0 1 1 inputStream Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/Resource;>;
0 1 2 elementType Lorg/springframework/core/ResolvableType;
0 1 3 mediaType Lorg/springframework/http/MediaType;
0 1 4 message Lorg/springframework/http/ReactiveHttpOutputMessage;
0 1 5 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Signature: (Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/Resource;>;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
4:
MethodParameters:
Name Flags
inputStream
elementType
mediaType
message
hints
private reactor.core.publisher.Mono<java.lang.Void> writeResource(org.springframework.core.io.Resource, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lorg/springframework/core/io/Resource;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 4
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
astore 6
start local 6 1: aload 3
aload 1
aload 5
invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.getResourceMediaType:(Lorg/springframework/http/MediaType;Lorg/springframework/core/io/Resource;Ljava/util/Map;)Lorg/springframework/http/MediaType;
astore 7
start local 7 2: aload 6
aload 7
invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
3: aload 6
invokevirtual org.springframework.http.HttpHeaders.getContentLength:()J
lconst_0
lcmp
ifge 7
4: aload 1
invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.lengthOf:(Lorg/springframework/core/io/Resource;)J
lstore 8
start local 8 5: lload 8
ldc -1
lcmp
ifeq 7
6: aload 6
lload 8
invokevirtual org.springframework.http.HttpHeaders.setContentLength:(J)V
end local 8 7: StackMap locals: org.springframework.http.HttpHeaders org.springframework.http.MediaType
StackMap stack:
aload 1
aconst_null
aload 4
aload 5
invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.zeroCopy:(Lorg/springframework/core/io/Resource;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/Optional;
8: aload 0
aload 1
aload 4
aload 2
aload 7
aload 5
invokedynamic get(Lorg/springframework/http/codec/ResourceHttpMessageWriter;Lorg/springframework/core/io/Resource;Lorg/springframework/http/ReactiveHttpOutputMessage;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Ljava/util/Map;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/springframework/http/codec/ResourceHttpMessageWriter.lambda$1(Lorg/springframework/core/io/Resource;Lorg/springframework/http/ReactiveHttpOutputMessage;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Ljava/util/Map;)Lreactor/core/publisher/Mono; (7)
()Lreactor/core/publisher/Mono;
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast reactor.core.publisher.Mono
9: areturn
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 10 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
0 10 1 resource Lorg/springframework/core/io/Resource;
0 10 2 type Lorg/springframework/core/ResolvableType;
0 10 3 mediaType Lorg/springframework/http/MediaType;
0 10 4 message Lorg/springframework/http/ReactiveHttpOutputMessage;
0 10 5 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
1 10 6 headers Lorg/springframework/http/HttpHeaders;
2 10 7 resourceMediaType Lorg/springframework/http/MediaType;
5 7 8 length J
Signature: (Lorg/springframework/core/io/Resource;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
4:
MethodParameters:
Name Flags
resource
type
mediaType
message
hints
private static org.springframework.http.MediaType getResourceMediaType(org.springframework.http.MediaType, org.springframework.core.io.Resource, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lorg/springframework/http/MediaType;Lorg/springframework/core/io/Resource;Ljava/util/Map;)Lorg/springframework/http/MediaType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnull 2
aload 0
invokevirtual org.springframework.http.MediaType.isConcrete:()Z
ifeq 2
aload 0
getstatic org.springframework.http.MediaType.APPLICATION_OCTET_STREAM:Lorg/springframework/http/MediaType;
invokevirtual org.springframework.http.MediaType.equals:(Ljava/lang/Object;)Z
ifne 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic org.springframework.http.MediaTypeFactory.getMediaType:(Lorg/springframework/core/io/Resource;)Ljava/util/Optional;
getstatic org.springframework.http.MediaType.APPLICATION_OCTET_STREAM:Lorg/springframework/http/MediaType;
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.http.MediaType
astore 0
3: getstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 5
aload 2
invokestatic org.springframework.core.codec.Hints.isLoggingSuppressed:(Ljava/util/Map;)Z
ifne 5
4: getstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
aload 2
invokestatic org.springframework.core.codec.Hints.getLogPrefix:(Ljava/util/Map;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Resource associated with '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 mediaType Lorg/springframework/http/MediaType;
0 6 1 resource Lorg/springframework/core/io/Resource;
0 6 2 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Signature: (Lorg/springframework/http/MediaType;Lorg/springframework/core/io/Resource;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lorg/springframework/http/MediaType;
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
2:
MethodParameters:
Name Flags
mediaType
resource
hints
private static long lengthOf(org.springframework.core.io.Resource);
descriptor: (Lorg/springframework/core/io/Resource;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc Lorg/springframework/core/io/InputStreamResource;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpeq 4
1: aload 0
invokeinterface org.springframework.core.io.Resource.contentLength:()J
2: lreturn
3: StackMap locals:
StackMap stack: java.io.IOException
pop
4: StackMap locals:
StackMap stack:
ldc -1
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 resource Lorg/springframework/core/io/Resource;
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
resource
private static java.util.Optional<reactor.core.publisher.Mono<java.lang.Void>> zeroCopy(org.springframework.core.io.Resource, org.springframework.core.io.support.ResourceRegion, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lorg/springframework/core/io/Resource;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/Optional;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof org.springframework.http.ZeroCopyHttpOutputMessage
ifeq 16
aload 0
invokeinterface org.springframework.core.io.Resource.isFile:()Z
ifeq 16
1: aload 0
invokeinterface org.springframework.core.io.Resource.getFile:()Ljava/io/File;
astore 4
start local 4 2: aload 1
ifnull 3
aload 1
invokevirtual org.springframework.core.io.support.ResourceRegion.getPosition:()J
goto 4
StackMap locals: java.io.File
StackMap stack:
3: lconst_0
StackMap locals:
StackMap stack: long
4: lstore 5
start local 5 5: aload 1
ifnull 6
aload 1
invokevirtual org.springframework.core.io.support.ResourceRegion.getCount:()J
goto 7
StackMap locals: long
StackMap stack:
6: aload 4
invokevirtual java.io.File.length:()J
StackMap locals:
StackMap stack: long
7: lstore 7
start local 7 8: getstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 13
9: aload 1
ifnull 10
new java.lang.StringBuilder
dup
ldc "region "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 5
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 7
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 11
StackMap locals: long
StackMap stack:
10: ldc ""
StackMap locals:
StackMap stack: java.lang.String
11: astore 9
start local 9 12: getstatic org.springframework.http.codec.ResourceHttpMessageWriter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
aload 3
invokestatic org.springframework.core.codec.Hints.getLogPrefix:(Ljava/util/Map;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Zero-copy "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
end local 9 13: StackMap locals:
StackMap stack:
aload 2
checkcast org.springframework.http.ZeroCopyHttpOutputMessage
aload 4
lload 5
lload 7
invokeinterface org.springframework.http.ZeroCopyHttpOutputMessage.writeWith:(Ljava/io/File;JJ)Lreactor/core/publisher/Mono;
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
14: areturn
end local 7 end local 5 end local 4 15: StackMap locals: org.springframework.core.io.Resource org.springframework.core.io.support.ResourceRegion org.springframework.http.ReactiveHttpOutputMessage java.util.Map
StackMap stack: java.io.IOException
pop
16: StackMap locals:
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 resource Lorg/springframework/core/io/Resource;
0 17 1 region Lorg/springframework/core/io/support/ResourceRegion;
0 17 2 message Lorg/springframework/http/ReactiveHttpOutputMessage;
0 17 3 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
2 15 4 file Ljava/io/File;
5 15 5 pos J
8 15 7 count J
12 13 9 formatted Ljava/lang/String;
Exception table:
from to target type
1 14 15 Class java.io.IOException
Signature: (Lorg/springframework/core/io/Resource;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljava/util/Optional<Lreactor/core/publisher/Mono<Ljava/lang/Void;>;>;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
3:
MethodParameters:
Name Flags
resource
region
message
hints
public reactor.core.publisher.Mono<java.lang.Void> write(org.reactivestreams.Publisher<? extends org.springframework.core.io.Resource>, org.springframework.core.ResolvableType, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.server.reactive.ServerHttpRequest, org.springframework.http.server.reactive.ServerHttpResponse, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lorg/reactivestreams/Publisher;Lorg/springframework/core/ResolvableType;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpRequest;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=10, 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: aload 6
invokeinterface org.springframework.http.server.reactive.ServerHttpResponse.getHeaders:()Lorg/springframework/http/HttpHeaders;
astore 8
start local 8 1: aload 8
ldc "Accept-Ranges"
ldc "bytes"
invokevirtual org.springframework.http.HttpHeaders.set:(Ljava/lang/String;Ljava/lang/String;)V
2: aload 5
invokeinterface org.springframework.http.server.reactive.ServerHttpRequest.getHeaders:()Lorg/springframework/http/HttpHeaders;
invokevirtual org.springframework.http.HttpHeaders.getRange:()Ljava/util/List;
astore 9
start local 9 3: goto 7
end local 9 4: StackMap locals: org.springframework.http.codec.ResourceHttpMessageWriter org.reactivestreams.Publisher org.springframework.core.ResolvableType org.springframework.core.ResolvableType org.springframework.http.MediaType org.springframework.http.server.reactive.ServerHttpRequest org.springframework.http.server.reactive.ServerHttpResponse java.util.Map org.springframework.http.HttpHeaders
StackMap stack: java.lang.IllegalArgumentException
pop
5: aload 6
getstatic org.springframework.http.HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE:Lorg/springframework/http/HttpStatus;
invokeinterface org.springframework.http.server.reactive.ServerHttpResponse.setStatusCode:(Lorg/springframework/http/HttpStatus;)Z
pop
6: aload 6
invokeinterface org.springframework.http.server.reactive.ServerHttpResponse.setComplete:()Lreactor/core/publisher/Mono;
areturn
start local 9 7: StackMap locals: java.util.List
StackMap stack:
aload 1
invokestatic reactor.core.publisher.Mono.from:(Lorg/reactivestreams/Publisher;)Lreactor/core/publisher/Mono;
aload 0
aload 9
aload 3
aload 4
aload 6
aload 7
aload 8
invokedynamic apply(Lorg/springframework/http/codec/ResourceHttpMessageWriter;Ljava/util/List;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map;Lorg/springframework/http/HttpHeaders;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/springframework/http/codec/ResourceHttpMessageWriter.lambda$2(Ljava/util/List;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map;Lorg/springframework/http/HttpHeaders;Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono; (7)
(Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono;
invokevirtual reactor.core.publisher.Mono.flatMap:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
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 8 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
0 8 1 inputStream Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/Resource;>;
0 8 2 actualType Lorg/springframework/core/ResolvableType;
0 8 3 elementType Lorg/springframework/core/ResolvableType;
0 8 4 mediaType Lorg/springframework/http/MediaType;
0 8 5 request Lorg/springframework/http/server/reactive/ServerHttpRequest;
0 8 6 response Lorg/springframework/http/server/reactive/ServerHttpResponse;
0 8 7 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
1 8 8 headers Lorg/springframework/http/HttpHeaders;
3 4 9 ranges Ljava/util/List<Lorg/springframework/http/HttpRange;>;
7 8 9 ranges Ljava/util/List<Lorg/springframework/http/HttpRange;>;
Exception table:
from to target type
2 3 4 Class java.lang.IllegalArgumentException
Signature: (Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/Resource;>;Lorg/springframework/core/ResolvableType;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpRequest;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
3:
org.springframework.lang.Nullable()
4:
5:
6:
MethodParameters:
Name Flags
inputStream
actualType
elementType
mediaType
request
response
hints
private reactor.core.publisher.Mono<java.lang.Void> writeSingleRegion(org.springframework.core.io.support.ResourceRegion, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.springframework.core.io.support.ResourceRegion.getResource:()Lorg/springframework/core/io/Resource;
aload 1
aload 2
aload 3
invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.zeroCopy:(Lorg/springframework/core/io/Resource;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/Optional;
1: aload 0
aload 1
aload 2
aload 3
invokedynamic get(Lorg/springframework/http/codec/ResourceHttpMessageWriter;Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/springframework/http/codec/ResourceHttpMessageWriter.lambda$3(Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono; (7)
()Lreactor/core/publisher/Mono;
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast reactor.core.publisher.Mono
2: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
0 3 1 region Lorg/springframework/core/io/support/ResourceRegion;
0 3 2 message Lorg/springframework/http/ReactiveHttpOutputMessage;
0 3 3 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Signature: (Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
MethodParameters:
Name Flags
region
message
hints
private reactor.core.publisher.Mono<java.lang.Void> encodeAndWriteRegions(org.reactivestreams.Publisher<? extends org.springframework.core.io.support.ResourceRegion>, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Lorg/reactivestreams/Publisher;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.springframework.http.codec.ResourceHttpMessageWriter.regionEncoder:Lorg/springframework/core/codec/ResourceRegionEncoder;
1: aload 1
aload 3
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.bufferFactory:()Lorg/springframework/core/io/buffer/DataBufferFactory;
getstatic org.springframework.http.codec.ResourceHttpMessageWriter.REGION_TYPE:Lorg/springframework/core/ResolvableType;
aload 2
aload 4
2: invokevirtual org.springframework.core.codec.ResourceRegionEncoder.encode:(Lorg/reactivestreams/Publisher;Lorg/springframework/core/io/buffer/DataBufferFactory;Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;Ljava/util/Map;)Lreactor/core/publisher/Flux;
astore 5
start local 5 3: aload 3
aload 5
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.writeWith:(Lorg/reactivestreams/Publisher;)Lreactor/core/publisher/Mono;
areturn
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 4 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
0 4 1 publisher Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/support/ResourceRegion;>;
0 4 2 mediaType Lorg/springframework/http/MediaType;
0 4 3 message Lorg/springframework/http/ReactiveHttpOutputMessage;
0 4 4 hints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
3 4 5 body Lreactor/core/publisher/Flux<Lorg/springframework/core/io/buffer/DataBuffer;>;
Signature: (Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/support/ResourceRegion;>;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lreactor/core/publisher/Mono<Ljava/lang/Void;>;
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
3:
MethodParameters:
Name Flags
publisher
mediaType
message
hints
private reactor.core.publisher.Mono lambda$0(org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map, org.springframework.core.io.Resource);
descriptor: (Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 5 0: aload 0
aload 5
aload 1
aload 2
aload 3
aload 4
invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.writeResource:(Lorg/springframework/core/io/Resource;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
areturn
end local 5 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
0 1 5 resource Lorg/springframework/core/io/Resource;
private reactor.core.publisher.Mono lambda$1(org.springframework.core.io.Resource, org.springframework.http.ReactiveHttpOutputMessage, org.springframework.core.ResolvableType, org.springframework.http.MediaType, java.util.Map);
descriptor: (Lorg/springframework/core/io/Resource;Lorg/springframework/http/ReactiveHttpOutputMessage;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=9, args_size=6
start local 0 0: aload 1
invokestatic reactor.core.publisher.Mono.just:(Ljava/lang/Object;)Lreactor/core/publisher/Mono;
astore 6
start local 6 1: aload 2
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.bufferFactory:()Lorg/springframework/core/io/buffer/DataBufferFactory;
astore 7
start local 7 2: aload 0
getfield org.springframework.http.codec.ResourceHttpMessageWriter.encoder:Lorg/springframework/core/codec/ResourceEncoder;
aload 6
aload 7
aload 3
aload 4
aload 5
invokevirtual org.springframework.core.codec.ResourceEncoder.encode:(Lorg/reactivestreams/Publisher;Lorg/springframework/core/io/buffer/DataBufferFactory;Lorg/springframework/core/ResolvableType;Lorg/springframework/util/MimeType;Ljava/util/Map;)Lreactor/core/publisher/Flux;
astore 8
start local 8 3: aload 2
aload 8
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.writeWith:(Lorg/reactivestreams/Publisher;)Lreactor/core/publisher/Mono;
areturn
end local 8 end local 7 end local 6 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
1 4 6 input Lreactor/core/publisher/Mono<Lorg/springframework/core/io/Resource;>;
2 4 7 factory Lorg/springframework/core/io/buffer/DataBufferFactory;
3 4 8 body Lreactor/core/publisher/Flux<Lorg/springframework/core/io/buffer/DataBuffer;>;
private reactor.core.publisher.Mono (java.util.List, org.springframework.core.ResolvableType, org.springframework.http.MediaType, org.springframework.http.server.reactive.ServerHttpResponse, java.util.Map, org.springframework.http.HttpHeaders, org.springframework.core.io.Resource);
descriptor: (Ljava/util/List;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/server/reactive/ServerHttpResponse;Ljava/util/Map;Lorg/springframework/http/HttpHeaders;Lorg/springframework/core/io/Resource;)Lreactor/core/publisher/Mono;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=17, args_size=8
start local 0 start local 7 0: aload 1
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: aload 0
aload 7
aload 2
aload 3
aload 4
aload 5
invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.writeResource:(Lorg/springframework/core/io/Resource;Lorg/springframework/core/ResolvableType;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
areturn
2: StackMap locals:
StackMap stack:
aload 4
getstatic org.springframework.http.HttpStatus.PARTIAL_CONTENT:Lorg/springframework/http/HttpStatus;
invokeinterface org.springframework.http.server.reactive.ServerHttpResponse.setStatusCode:(Lorg/springframework/http/HttpStatus;)Z
pop
3: aload 1
aload 7
invokestatic org.springframework.http.HttpRange.toResourceRegions:(Ljava/util/List;Lorg/springframework/core/io/Resource;)Ljava/util/List;
astore 8
start local 8 4: aload 3
aload 7
aload 5
invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.getResourceMediaType:(Lorg/springframework/http/MediaType;Lorg/springframework/core/io/Resource;Ljava/util/Map;)Lorg/springframework/http/MediaType;
astore 9
start local 9 5: aload 8
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 16
6: aload 8
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.springframework.core.io.support.ResourceRegion
astore 10
start local 10 7: aload 6
aload 9
invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
8: aload 7
invokestatic org.springframework.http.codec.ResourceHttpMessageWriter.lengthOf:(Lorg/springframework/core/io/Resource;)J
lstore 11
start local 11 9: lload 11
ldc -1
lcmp
ifeq 15
10: aload 10
invokevirtual org.springframework.core.io.support.ResourceRegion.getPosition:()J
lstore 13
start local 13 11: lload 13
aload 10
invokevirtual org.springframework.core.io.support.ResourceRegion.getCount:()J
ladd
lconst_1
lsub
lstore 15
start local 15 12: lload 15
lload 11
lconst_1
lsub
invokestatic java.lang.Math.min:(JJ)J
lstore 15
13: aload 6
ldc "Content-Range"
new java.lang.StringBuilder
dup
ldc "bytes "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 13
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
bipush 45
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
lload 15
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
lload 11
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.springframework.http.HttpHeaders.add:(Ljava/lang/String;Ljava/lang/String;)V
14: aload 6
lload 15
lload 13
lsub
lconst_1
ladd
invokevirtual org.springframework.http.HttpHeaders.setContentLength:(J)V
end local 15 end local 13 15: StackMap locals: org.springframework.http.codec.ResourceHttpMessageWriter java.util.List org.springframework.core.ResolvableType org.springframework.http.MediaType org.springframework.http.server.reactive.ServerHttpResponse java.util.Map org.springframework.http.HttpHeaders org.springframework.core.io.Resource java.util.List org.springframework.http.MediaType org.springframework.core.io.support.ResourceRegion long
StackMap stack:
aload 0
aload 10
aload 4
aload 5
invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.writeSingleRegion:(Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
areturn
end local 11 end local 10 16: StackMap locals:
StackMap stack:
invokestatic org.springframework.util.MimeTypeUtils.generateMultipartBoundaryString:()Ljava/lang/String;
astore 10
start local 10 17: new java.lang.StringBuilder
dup
ldc "multipart/byteranges;boundary="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.springframework.http.MediaType.parseMediaType:(Ljava/lang/String;)Lorg/springframework/http/MediaType;
astore 11
start local 11 18: aload 6
aload 11
invokevirtual org.springframework.http.HttpHeaders.setContentType:(Lorg/springframework/http/MediaType;)V
19: aload 5
getstatic org.springframework.core.codec.ResourceRegionEncoder.BOUNDARY_STRING_HINT:Ljava/lang/String;
aload 10
invokestatic org.springframework.core.codec.Hints.merge:(Ljava/util/Map;Ljava/lang/String;Ljava/lang/Object;)Ljava/util/Map;
astore 12
start local 12 20: aload 0
aload 8
invokestatic reactor.core.publisher.Flux.fromIterable:(Ljava/lang/Iterable;)Lreactor/core/publisher/Flux;
aload 9
aload 4
aload 12
invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.encodeAndWriteRegions:(Lorg/reactivestreams/Publisher;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
0 21 7 resource Lorg/springframework/core/io/Resource;
4 21 8 regions Ljava/util/List<Lorg/springframework/core/io/support/ResourceRegion;>;
5 21 9 resourceMediaType Lorg/springframework/http/MediaType;
7 16 10 region Lorg/springframework/core/io/support/ResourceRegion;
9 16 11 contentLength J
11 15 13 start J
12 15 15 end J
17 21 10 boundary Ljava/lang/String;
18 21 11 multipartType Lorg/springframework/http/MediaType;
20 21 12 allHints Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
private reactor.core.publisher.Mono lambda$3(org.springframework.core.io.support.ResourceRegion, org.springframework.http.ReactiveHttpOutputMessage, java.util.Map);
descriptor: (Lorg/springframework/core/io/support/ResourceRegion;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=6, args_size=4
start local 0 0: aload 1
invokestatic reactor.core.publisher.Mono.just:(Ljava/lang/Object;)Lreactor/core/publisher/Mono;
astore 4
start local 4 1: aload 2
invokeinterface org.springframework.http.ReactiveHttpOutputMessage.getHeaders:()Lorg/springframework/http/HttpHeaders;
invokevirtual org.springframework.http.HttpHeaders.getContentType:()Lorg/springframework/http/MediaType;
astore 5
start local 5 2: aload 0
aload 4
aload 5
aload 2
aload 3
invokevirtual org.springframework.http.codec.ResourceHttpMessageWriter.encodeAndWriteRegions:(Lorg/reactivestreams/Publisher;Lorg/springframework/http/MediaType;Lorg/springframework/http/ReactiveHttpOutputMessage;Ljava/util/Map;)Lreactor/core/publisher/Mono;
areturn
end local 5 end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/http/codec/ResourceHttpMessageWriter;
1 3 4 input Lorg/reactivestreams/Publisher<+Lorg/springframework/core/io/support/ResourceRegion;>;
2 3 5 mediaType Lorg/springframework/http/MediaType;
}
Signature: Ljava/lang/Object;Lorg/springframework/http/codec/HttpMessageWriter<Lorg/springframework/core/io/Resource;>;
SourceFile: "ResourceHttpMessageWriter.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles