public class <T> implements org.springframework.web.client.ResponseExtractor<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.client.HttpMessageConverterExtractor
super_class: java.lang.Object
{
private final java.lang.reflect.Type ;
descriptor: Ljava/lang/reflect/Type;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Class<T> ;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<TT;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> ;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/http/converter/HttpMessageConverter<*>;>;
private final org.apache.commons.logging.Log ;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.Class<T>, java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>);
descriptor: (Ljava/lang/Class;Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.springframework.web.client.HttpMessageConverterExtractor.<init>:(Ljava/lang/reflect/Type;Ljava/util/List;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/client/HttpMessageConverterExtractor<TT;>;
0 2 1 responseType Ljava/lang/Class<TT;>;
0 2 2 messageConverters Ljava/util/List<Lorg/springframework/http/converter/HttpMessageConverter<*>;>;
Signature: (Ljava/lang/Class<TT;>;Ljava/util/List<Lorg/springframework/http/converter/HttpMessageConverter<*>;>;)V
MethodParameters:
Name Flags
responseType
messageConverters
public void <init>(java.lang.reflect.Type, java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>);
descriptor: (Ljava/lang/reflect/Type;Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
ldc Lorg/springframework/web/client/HttpMessageConverterExtractor;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
invokespecial org.springframework.web.client.HttpMessageConverterExtractor.<init>:(Ljava/lang/reflect/Type;Ljava/util/List;Lorg/apache/commons/logging/Log;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/client/HttpMessageConverterExtractor<TT;>;
0 2 1 responseType Ljava/lang/reflect/Type;
0 2 2 messageConverters Ljava/util/List<Lorg/springframework/http/converter/HttpMessageConverter<*>;>;
Signature: (Ljava/lang/reflect/Type;Ljava/util/List<Lorg/springframework/http/converter/HttpMessageConverter<*>;>;)V
MethodParameters:
Name Flags
responseType
messageConverters
void <init>(java.lang.reflect.Type, java.util.List<org.springframework.http.converter.HttpMessageConverter<?>>, org.apache.commons.logging.Log);
descriptor: (Ljava/lang/reflect/Type;Ljava/util/List;Lorg/apache/commons/logging/Log;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ldc "'responseType' must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
2: aload 2
ldc "'messageConverters' must not be empty"
invokestatic org.springframework.util.Assert.notEmpty:(Ljava/util/Collection;Ljava/lang/String;)V
3: aload 0
aload 1
putfield org.springframework.web.client.HttpMessageConverterExtractor.responseType:Ljava/lang/reflect/Type;
4: aload 0
aload 1
instanceof java.lang.Class
ifeq 5
aload 1
checkcast java.lang.Class
goto 6
StackMap locals: org.springframework.web.client.HttpMessageConverterExtractor java.lang.reflect.Type java.util.List org.apache.commons.logging.Log
StackMap stack: org.springframework.web.client.HttpMessageConverterExtractor
5: aconst_null
StackMap locals: org.springframework.web.client.HttpMessageConverterExtractor java.lang.reflect.Type java.util.List org.apache.commons.logging.Log
StackMap stack: org.springframework.web.client.HttpMessageConverterExtractor java.lang.Class
6: putfield org.springframework.web.client.HttpMessageConverterExtractor.responseClass:Ljava/lang/Class;
7: aload 0
aload 2
putfield org.springframework.web.client.HttpMessageConverterExtractor.messageConverters:Ljava/util/List;
8: aload 0
aload 3
putfield org.springframework.web.client.HttpMessageConverterExtractor.logger:Lorg/apache/commons/logging/Log;
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/web/client/HttpMessageConverterExtractor<TT;>;
0 10 1 responseType Ljava/lang/reflect/Type;
0 10 2 messageConverters Ljava/util/List<Lorg/springframework/http/converter/HttpMessageConverter<*>;>;
0 10 3 logger Lorg/apache/commons/logging/Log;
Signature: (Ljava/lang/reflect/Type;Ljava/util/List<Lorg/springframework/http/converter/HttpMessageConverter<*>;>;Lorg/apache/commons/logging/Log;)V
MethodParameters:
Name Flags
responseType
messageConverters
logger
public T extractData(org.springframework.http.client.ClientHttpResponse);
descriptor: (Lorg/springframework/http/client/ClientHttpResponse;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: new org.springframework.web.client.MessageBodyClientHttpResponseWrapper
dup
aload 1
invokespecial org.springframework.web.client.MessageBodyClientHttpResponseWrapper.<init>:(Lorg/springframework/http/client/ClientHttpResponse;)V
astore 2
start local 2 1: aload 2
invokevirtual org.springframework.web.client.MessageBodyClientHttpResponseWrapper.hasMessageBody:()Z
ifeq 2
aload 2
invokevirtual org.springframework.web.client.MessageBodyClientHttpResponseWrapper.hasEmptyMessageBody:()Z
ifeq 3
2: StackMap locals: org.springframework.web.client.MessageBodyClientHttpResponseWrapper
StackMap stack:
aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.springframework.web.client.HttpMessageConverterExtractor.getContentType:(Lorg/springframework/http/client/ClientHttpResponse;)Lorg/springframework/http/MediaType;
astore 3
start local 3 4: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.messageConverters:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 22
StackMap locals: org.springframework.web.client.HttpMessageConverterExtractor org.springframework.http.client.ClientHttpResponse org.springframework.web.client.MessageBodyClientHttpResponseWrapper org.springframework.http.MediaType top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.http.converter.HttpMessageConverter
astore 4
start local 4 6: aload 4
instanceof org.springframework.http.converter.GenericHttpMessageConverter
ifeq 15
7: aload 4
checkcast org.springframework.http.converter.GenericHttpMessageConverter
8: astore 6
start local 6 9: aload 6
aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseType:Ljava/lang/reflect/Type;
aconst_null
aload 3
invokeinterface org.springframework.http.converter.GenericHttpMessageConverter.canRead:(Ljava/lang/reflect/Type;Ljava/lang/Class;Lorg/springframework/http/MediaType;)Z
ifeq 15
10: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 13
11: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseType:Ljava/lang/reflect/Type;
invokestatic org.springframework.core.ResolvableType.forType:(Ljava/lang/reflect/Type;)Lorg/springframework/core/ResolvableType;
astore 7
start local 7 12: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Reading to ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
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 7 13: StackMap locals: org.springframework.web.client.HttpMessageConverterExtractor org.springframework.http.client.ClientHttpResponse org.springframework.web.client.MessageBodyClientHttpResponseWrapper org.springframework.http.MediaType org.springframework.http.converter.HttpMessageConverter java.util.Iterator org.springframework.http.converter.GenericHttpMessageConverter
StackMap stack:
aload 6
aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseType:Ljava/lang/reflect/Type;
aconst_null
aload 2
invokeinterface org.springframework.http.converter.GenericHttpMessageConverter.read:(Ljava/lang/reflect/Type;Ljava/lang/Class;Lorg/springframework/http/HttpInputMessage;)Ljava/lang/Object;
14: areturn
end local 6 15: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseClass:Ljava/lang/Class;
ifnull 22
16: aload 4
aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseClass:Ljava/lang/Class;
aload 3
invokeinterface org.springframework.http.converter.HttpMessageConverter.canRead:(Ljava/lang/Class;Lorg/springframework/http/MediaType;)Z
ifeq 22
17: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 20
18: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseClass:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 6
start local 6 19: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Reading to ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] as \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
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 6 20: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseClass:Ljava/lang/Class;
aload 2
invokeinterface org.springframework.http.converter.HttpMessageConverter.read:(Ljava/lang/Class;Lorg/springframework/http/HttpInputMessage;)Ljava/lang/Object;
21: areturn
end local 4 22: StackMap locals: org.springframework.web.client.HttpMessageConverterExtractor org.springframework.http.client.ClientHttpResponse org.springframework.web.client.MessageBodyClientHttpResponseWrapper org.springframework.http.MediaType top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
23: goto 28
24: StackMap locals: org.springframework.web.client.HttpMessageConverterExtractor org.springframework.http.client.ClientHttpResponse org.springframework.web.client.MessageBodyClientHttpResponseWrapper org.springframework.http.MediaType
StackMap stack: java.lang.Exception
astore 4
start local 4 25: new org.springframework.web.client.RestClientException
dup
new java.lang.StringBuilder
dup
ldc "Error while extracting response for type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
26: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseType:Ljava/lang/reflect/Type;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] and content type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
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;
aload 4
27: invokespecial org.springframework.web.client.RestClientException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 28: StackMap locals:
StackMap stack:
new org.springframework.web.client.RestClientException
dup
new java.lang.StringBuilder
dup
ldc "Could not extract response: no suitable HttpMessageConverter found for response type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
29: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.responseType:Ljava/lang/reflect/Type;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] and content type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
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;
30: invokespecial org.springframework.web.client.RestClientException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/springframework/web/client/HttpMessageConverterExtractor<TT;>;
0 31 1 response Lorg/springframework/http/client/ClientHttpResponse;
1 31 2 responseWrapper Lorg/springframework/web/client/MessageBodyClientHttpResponseWrapper;
4 31 3 contentType Lorg/springframework/http/MediaType;
6 22 4 messageConverter Lorg/springframework/http/converter/HttpMessageConverter<*>;
9 15 6 genericMessageConverter Lorg/springframework/http/converter/GenericHttpMessageConverter<*>;
12 13 7 resolvableType Lorg/springframework/core/ResolvableType;
19 20 6 className Ljava/lang/String;
25 28 4 ex Ljava/lang/Exception;
Exception table:
from to target type
4 14 24 Class java.io.IOException
15 21 24 Class java.io.IOException
22 23 24 Class java.io.IOException
4 14 24 Class org.springframework.http.converter.HttpMessageNotReadableException
15 21 24 Class org.springframework.http.converter.HttpMessageNotReadableException
22 23 24 Class org.springframework.http.converter.HttpMessageNotReadableException
Exceptions:
throws java.io.IOException
Signature: (Lorg/springframework/http/client/ClientHttpResponse;)TT;
MethodParameters:
Name Flags
response
protected org.springframework.http.MediaType (org.springframework.http.client.ClientHttpResponse);
descriptor: (Lorg/springframework/http/client/ClientHttpResponse;)Lorg/springframework/http/MediaType;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.springframework.http.client.ClientHttpResponse.getHeaders:()Lorg/springframework/http/HttpHeaders;
invokevirtual org.springframework.http.HttpHeaders.getContentType:()Lorg/springframework/http/MediaType;
astore 2
start local 2 1: aload 2
ifnonnull 5
2: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 4
3: aload 0
getfield org.springframework.web.client.HttpMessageConverterExtractor.logger:Lorg/apache/commons/logging/Log;
ldc "No content-type, using 'application/octet-stream'"
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
4: StackMap locals: org.springframework.http.MediaType
StackMap stack:
getstatic org.springframework.http.MediaType.APPLICATION_OCTET_STREAM:Lorg/springframework/http/MediaType;
astore 2
5: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/web/client/HttpMessageConverterExtractor<TT;>;
0 6 1 response Lorg/springframework/http/client/ClientHttpResponse;
1 6 2 contentType Lorg/springframework/http/MediaType;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
response
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/springframework/web/client/ResponseExtractor<TT;>;
SourceFile: "HttpMessageConverterExtractor.java"