class org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture<T> extends org.springframework.util.concurrent.ListenableFutureAdapter<T, org.springframework.http.client.ClientHttpResponse>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture
  super_class: org.springframework.util.concurrent.ListenableFutureAdapter
{
  private final org.springframework.http.HttpMethod method;
    descriptor: Lorg/springframework/http/HttpMethod;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.net.URI url;
    descriptor: Ljava/net/URI;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.web.client.ResponseExtractor<T> responseExtractor;
    descriptor: Lorg/springframework/web/client/ResponseExtractor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/springframework/web/client/ResponseExtractor<TT;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  final org.springframework.web.client.AsyncRestTemplate this$0;
    descriptor: Lorg/springframework/web/client/AsyncRestTemplate;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(org.springframework.http.HttpMethod, java.net.URI, org.springframework.util.concurrent.ListenableFuture<org.springframework.http.client.ClientHttpResponse>, org.springframework.web.client.ResponseExtractor<T>);
    descriptor: (Lorg/springframework/web/client/AsyncRestTemplate;Lorg/springframework/http/HttpMethod;Ljava/net/URI;Lorg/springframework/util/concurrent/ListenableFuture;Lorg/springframework/web/client/ResponseExtractor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture this
        start local 2 // org.springframework.http.HttpMethod method
        start local 3 // java.net.URI url
        start local 4 // org.springframework.util.concurrent.ListenableFuture clientHttpResponseFuture
        start local 5 // org.springframework.web.client.ResponseExtractor responseExtractor
         0: .line 629
            aload 0 /* this */
            aload 1
            putfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.this$0:Lorg/springframework/web/client/AsyncRestTemplate;
         1: .line 631
            aload 0 /* this */
            aload 4 /* clientHttpResponseFuture */
            invokespecial org.springframework.util.concurrent.ListenableFutureAdapter.<init>:(Lorg/springframework/util/concurrent/ListenableFuture;)V
         2: .line 632
            aload 0 /* this */
            aload 2 /* method */
            putfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.method:Lorg/springframework/http/HttpMethod;
         3: .line 633
            aload 0 /* this */
            aload 3 /* url */
            putfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.url:Ljava/net/URI;
         4: .line 634
            aload 0 /* this */
            aload 5 /* responseExtractor */
            putfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.responseExtractor:Lorg/springframework/web/client/ResponseExtractor;
         5: .line 635
            return
        end local 5 // org.springframework.web.client.ResponseExtractor responseExtractor
        end local 4 // org.springframework.util.concurrent.ListenableFuture clientHttpResponseFuture
        end local 3 // java.net.URI url
        end local 2 // org.springframework.http.HttpMethod method
        end local 0 // org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    6     0                      this  Lorg/springframework/web/client/AsyncRestTemplate$ResponseExtractorFuture<TT;>;
            0    6     2                    method  Lorg/springframework/http/HttpMethod;
            0    6     3                       url  Ljava/net/URI;
            0    6     4  clientHttpResponseFuture  Lorg/springframework/util/concurrent/ListenableFuture<Lorg/springframework/http/client/ClientHttpResponse;>;
            0    6     5         responseExtractor  Lorg/springframework/web/client/ResponseExtractor<TT;>;
    Signature: (Lorg/springframework/http/HttpMethod;Ljava/net/URI;Lorg/springframework/util/concurrent/ListenableFuture<Lorg/springframework/http/client/ClientHttpResponse;>;Lorg/springframework/web/client/ResponseExtractor<TT;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        org.springframework.lang.Nullable()
      4:
    MethodParameters:
                          Name  Flags
      this$0                    final
      method                    
      url                       
      clientHttpResponseFuture  
      responseExtractor         

  protected final T adapt(org.springframework.http.client.ClientHttpResponse);
    descriptor: (Lorg/springframework/http/client/ClientHttpResponse;)Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture this
        start local 1 // org.springframework.http.client.ClientHttpResponse response
         0: .line 641
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.this$0:Lorg/springframework/web/client/AsyncRestTemplate;
            invokevirtual org.springframework.web.client.AsyncRestTemplate.getErrorHandler:()Lorg/springframework/web/client/ResponseErrorHandler;
            aload 1 /* response */
            invokeinterface org.springframework.web.client.ResponseErrorHandler.hasError:(Lorg/springframework/http/client/ClientHttpResponse;)Z
            ifne 3
         1: .line 642
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.this$0:Lorg/springframework/web/client/AsyncRestTemplate;
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.method:Lorg/springframework/http/HttpMethod;
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.url:Ljava/net/URI;
            aload 1 /* response */
            invokevirtual org.springframework.web.client.AsyncRestTemplate.logResponseStatus:(Lorg/springframework/http/HttpMethod;Ljava/net/URI;Lorg/springframework/http/client/ClientHttpResponse;)V
         2: .line 643
            goto 4
         3: .line 645
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.this$0:Lorg/springframework/web/client/AsyncRestTemplate;
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.method:Lorg/springframework/http/HttpMethod;
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.url:Ljava/net/URI;
            aload 1 /* response */
            invokevirtual org.springframework.web.client.AsyncRestTemplate.handleResponseError:(Lorg/springframework/http/HttpMethod;Ljava/net/URI;Lorg/springframework/http/client/ClientHttpResponse;)V
         4: .line 647
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* response */
            invokevirtual org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.convertResponse:(Lorg/springframework/http/client/ClientHttpResponse;)Ljava/lang/Object;
            astore 4
         5: .line 653
            aload 1 /* response */
            invokeinterface org.springframework.http.client.ClientHttpResponse.close:()V
         6: .line 647
            aload 4
            areturn
         7: .line 649
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* ex */
        start local 2 // java.lang.Throwable ex
         8: .line 650
            new java.util.concurrent.ExecutionException
            dup
            aload 2 /* ex */
            invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Throwable ex
         9: .line 652
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        10: .line 653
            aload 1 /* response */
            invokeinterface org.springframework.http.client.ClientHttpResponse.close:()V
        11: .line 654
            aload 3
            athrow
        end local 1 // org.springframework.http.client.ClientHttpResponse response
        end local 0 // org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/springframework/web/client/AsyncRestTemplate$ResponseExtractorFuture<TT;>;
            0   12     1  response  Lorg/springframework/http/client/ClientHttpResponse;
            8    9     2        ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     5       7  Class java.lang.Throwable
           0     5       9  any
           7     9       9  any
    Exceptions:
      throws java.util.concurrent.ExecutionException
    Signature: (Lorg/springframework/http/client/ClientHttpResponse;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      response  

  protected T convertResponse(org.springframework.http.client.ClientHttpResponse);
    descriptor: (Lorg/springframework/http/client/ClientHttpResponse;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture this
        start local 1 // org.springframework.http.client.ClientHttpResponse response
         0: .line 659
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.responseExtractor:Lorg/springframework/web/client/ResponseExtractor;
            ifnull 1
            aload 0 /* this */
            getfield org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.responseExtractor:Lorg/springframework/web/client/ResponseExtractor;
            aload 1 /* response */
            invokeinterface org.springframework.web.client.ResponseExtractor.extractData:(Lorg/springframework/http/client/ClientHttpResponse;)Ljava/lang/Object;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         2: areturn
        end local 1 // org.springframework.http.client.ClientHttpResponse response
        end local 0 // org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/springframework/web/client/AsyncRestTemplate$ResponseExtractorFuture<TT;>;
            0    3     1  response  Lorg/springframework/http/client/ClientHttpResponse;
    Exceptions:
      throws java.io.IOException
    Signature: (Lorg/springframework/http/client/ClientHttpResponse;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      response  

  protected java.lang.Object adapt(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.springframework.http.client.ClientHttpResponse
            invokevirtual org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture.adapt:(Lorg/springframework/http/client/ClientHttpResponse;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.util.concurrent.ExecutionException
}
Signature: <T:Ljava/lang/Object;>Lorg/springframework/util/concurrent/ListenableFutureAdapter<TT;Lorg/springframework/http/client/ClientHttpResponse;>;
SourceFile: "AsyncRestTemplate.java"
NestHost: org.springframework.web.client.AsyncRestTemplate
InnerClasses:
  private ResponseExtractorFuture = org.springframework.web.client.AsyncRestTemplate$ResponseExtractorFuture of org.springframework.web.client.AsyncRestTemplate