public class jdk.internal.net.http.ResponseTimerEvent extends jdk.internal.net.http.TimeoutEvent
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.net.http.ResponseTimerEvent
  super_class: jdk.internal.net.http.TimeoutEvent
{
  private static final jdk.internal.net.http.common.Logger debug;
    descriptor: Ljdk/internal/net/http/common/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final jdk.internal.net.http.MultiExchange<?> multiExchange;
    descriptor: Ljdk/internal/net/http/MultiExchange;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/internal/net/http/MultiExchange<*>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 36
            ldc "ResponseTimerEvent"
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Ljava/lang/String;)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;
                  java/lang/String.toString()Ljava/lang/String; (5)
                  ()Ljava/lang/String;
            getstatic jdk.internal.net.http.common.Utils.DEBUG:Z
            invokestatic jdk.internal.net.http.common.Utils.getDebugLogger:(Ljava/util/function/Supplier;Z)Ljdk/internal/net/http/common/Logger;
         1: .line 35
            putstatic jdk.internal.net.http.ResponseTimerEvent.debug:Ljdk/internal/net/http/common/Logger;
         2: .line 36
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static jdk.internal.net.http.ResponseTimerEvent of(jdk.internal.net.http.MultiExchange<?>);
    descriptor: (Ljdk/internal/net/http/MultiExchange;)Ljdk/internal/net/http/ResponseTimerEvent;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.MultiExchange exchange
         0: .line 41
            new jdk.internal.net.http.ResponseTimerEvent
            dup
            aload 0 /* exchange */
            invokespecial jdk.internal.net.http.ResponseTimerEvent.<init>:(Ljdk/internal/net/http/MultiExchange;)V
            areturn
        end local 0 // jdk.internal.net.http.MultiExchange exchange
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  exchange  Ljdk/internal/net/http/MultiExchange<*>;
    Signature: (Ljdk/internal/net/http/MultiExchange<*>;)Ljdk/internal/net/http/ResponseTimerEvent;
    MethodParameters:
          Name  Flags
      exchange  

  private void <init>(jdk.internal.net.http.MultiExchange<?>);
    descriptor: (Ljdk/internal/net/http/MultiExchange;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.net.http.ResponseTimerEvent this
        start local 1 // jdk.internal.net.http.MultiExchange multiExchange
         0: .line 45
            aload 0 /* this */
            aload 1 /* multiExchange */
            getfield jdk.internal.net.http.MultiExchange.exchange:Ljdk/internal/net/http/Exchange;
            getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
            invokevirtual jdk.internal.net.http.HttpRequestImpl.timeout:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.time.Duration
            invokespecial jdk.internal.net.http.TimeoutEvent.<init>:(Ljava/time/Duration;)V
         1: .line 46
            aload 0 /* this */
            aload 1 /* multiExchange */
            putfield jdk.internal.net.http.ResponseTimerEvent.multiExchange:Ljdk/internal/net/http/MultiExchange;
         2: .line 47
            return
        end local 1 // jdk.internal.net.http.MultiExchange multiExchange
        end local 0 // jdk.internal.net.http.ResponseTimerEvent this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Ljdk/internal/net/http/ResponseTimerEvent;
            0    3     1  multiExchange  Ljdk/internal/net/http/MultiExchange<*>;
    Signature: (Ljdk/internal/net/http/MultiExchange<*>;)V
    MethodParameters:
               Name  Flags
      multiExchange  

  public void handle();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // jdk.internal.net.http.ResponseTimerEvent this
         0: .line 51
            getstatic jdk.internal.net.http.ResponseTimerEvent.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 4
         1: .line 52
            getstatic jdk.internal.net.http.ResponseTimerEvent.debug:Ljdk/internal/net/http/common/Logger;
            ldc "Cancelling MultiExchange due to timeout for request %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 53
            aload 0 /* this */
            getfield jdk.internal.net.http.ResponseTimerEvent.multiExchange:Ljdk/internal/net/http/MultiExchange;
            getfield jdk.internal.net.http.MultiExchange.exchange:Ljdk/internal/net/http/Exchange;
            getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
            aastore
         3: .line 52
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 55
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* t */
        start local 1 // java.net.http.HttpTimeoutException t
         5: .line 58
            aload 0 /* this */
            getfield jdk.internal.net.http.ResponseTimerEvent.multiExchange:Ljdk/internal/net/http/MultiExchange;
            invokevirtual jdk.internal.net.http.MultiExchange.getExchange:()Ljdk/internal/net/http/Exchange;
            astore 2 /* exchange */
        start local 2 // jdk.internal.net.http.Exchange exchange
         6: .line 59
            aload 2 /* exchange */
            ifnull 11
         7: .line 60
            aload 2 /* exchange */
            getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
            astore 3 /* exchangeImpl */
        start local 3 // jdk.internal.net.http.ExchangeImpl exchangeImpl
         8: .line 61
            aload 3 /* exchangeImpl */
            ifnull 11
         9: .line 62
            aload 3 /* exchangeImpl */
            invokevirtual jdk.internal.net.http.ExchangeImpl.connection:()Ljdk/internal/net/http/HttpConnection;
            invokevirtual jdk.internal.net.http.HttpConnection.connected:()Z
            ifeq 11
        10: .line 63
            new java.net.http.HttpTimeoutException
            dup
            ldc "request timed out"
            invokespecial java.net.http.HttpTimeoutException.<init>:(Ljava/lang/String;)V
            astore 1 /* t */
        end local 3 // jdk.internal.net.http.ExchangeImpl exchangeImpl
        11: .line 67
      StackMap locals: java.net.http.HttpTimeoutException jdk.internal.net.http.Exchange
      StackMap stack:
            aload 1 /* t */
            ifnonnull 14
        12: .line 68
            new java.net.http.HttpConnectTimeoutException
            dup
            ldc "HTTP connect timed out"
            invokespecial java.net.http.HttpConnectTimeoutException.<init>:(Ljava/lang/String;)V
            astore 1 /* t */
        13: .line 69
            aload 1 /* t */
            new java.net.ConnectException
            dup
            ldc "HTTP connect timed out"
            invokespecial java.net.ConnectException.<init>:(Ljava/lang/String;)V
            invokevirtual java.net.http.HttpTimeoutException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        14: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.ResponseTimerEvent.multiExchange:Ljdk/internal/net/http/MultiExchange;
            aload 1 /* t */
            invokevirtual jdk.internal.net.http.MultiExchange.cancel:(Ljava/io/IOException;)V
        15: .line 72
            return
        end local 2 // jdk.internal.net.http.Exchange exchange
        end local 1 // java.net.http.HttpTimeoutException t
        end local 0 // jdk.internal.net.http.ResponseTimerEvent this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Ljdk/internal/net/http/ResponseTimerEvent;
            5   16     1             t  Ljava/net/http/HttpTimeoutException;
            6   16     2      exchange  Ljdk/internal/net/http/Exchange<*>;
            8   11     3  exchangeImpl  Ljdk/internal/net/http/ExchangeImpl<*>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.ResponseTimerEvent this
         0: .line 76
            new java.lang.StringBuilder
            dup
            ldc "ResponseTimerEvent["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokespecial jdk.internal.net.http.TimeoutEvent.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // jdk.internal.net.http.ResponseTimerEvent this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/net/http/ResponseTimerEvent;

  public int compareTo(jdk.internal.net.http.TimeoutEvent);
    descriptor: (Ljdk/internal/net/http/TimeoutEvent;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial jdk.internal.net.http.TimeoutEvent.compareTo:(Ljdk/internal/net/http/TimeoutEvent;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.time.Instant deadline();
    descriptor: ()Ljava/time/Instant;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial jdk.internal.net.http.TimeoutEvent.deadline:()Ljava/time/Instant;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ResponseTimerEvent.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles