class org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber implements org.reactivestreams.Subscriber<java.lang.Void>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber
  super_class: java.lang.Object
{
  private final javax.servlet.AsyncContext asyncContext;
    descriptor: Ljavax/servlet/AsyncContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicBoolean isCompleted;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String logPrefix;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final org.springframework.http.server.reactive.ServletHttpHandlerAdapter this$0;
    descriptor: Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(org.springframework.http.server.reactive.ServletHttpHandlerAdapter, javax.servlet.AsyncContext, java.util.concurrent.atomic.AtomicBoolean, org.springframework.http.server.reactive.ServletServerHttpRequest);
    descriptor: (Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter;Ljavax/servlet/AsyncContext;Ljava/util/concurrent/atomic/AtomicBoolean;Lorg/springframework/http/server/reactive/ServletServerHttpRequest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
        start local 2 // javax.servlet.AsyncContext asyncContext
        start local 3 // java.util.concurrent.atomic.AtomicBoolean isCompleted
        start local 4 // org.springframework.http.server.reactive.ServletServerHttpRequest httpRequest
         0: .line 289
            aload 0 /* this */
            aload 1
            putfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.this$0:Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter;
         1: .line 288
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 291
            aload 0 /* this */
            aload 2 /* asyncContext */
            putfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
         3: .line 292
            aload 0 /* this */
            aload 3 /* isCompleted */
            putfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.isCompleted:Ljava/util/concurrent/atomic/AtomicBoolean;
         4: .line 293
            aload 0 /* this */
            aload 4 /* httpRequest */
            invokevirtual org.springframework.http.server.reactive.ServletServerHttpRequest.getLogPrefix:()Ljava/lang/String;
            putfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.logPrefix:Ljava/lang/String;
         5: .line 294
            return
        end local 4 // org.springframework.http.server.reactive.ServletServerHttpRequest httpRequest
        end local 3 // java.util.concurrent.atomic.AtomicBoolean isCompleted
        end local 2 // javax.servlet.AsyncContext asyncContext
        end local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter$HandlerResultSubscriber;
            0    6     2  asyncContext  Ljavax/servlet/AsyncContext;
            0    6     3   isCompleted  Ljava/util/concurrent/atomic/AtomicBoolean;
            0    6     4   httpRequest  Lorg/springframework/http/server/reactive/ServletServerHttpRequest;
    MethodParameters:
              Name  Flags
      this$0        final
      asyncContext  
      isCompleted   
      httpRequest   

  public void onSubscribe(org.reactivestreams.Subscription);
    descriptor: (Lorg/reactivestreams/Subscription;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
        start local 1 // org.reactivestreams.Subscription subscription
         0: .line 298
            aload 1 /* subscription */
            ldc 9223372036854775807
            invokeinterface org.reactivestreams.Subscription.request:(J)V
         1: .line 299
            return
        end local 1 // org.reactivestreams.Subscription subscription
        end local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter$HandlerResultSubscriber;
            0    2     1  subscription  Lorg/reactivestreams/Subscription;
    MethodParameters:
              Name  Flags
      subscription  

  public void onNext(java.lang.Void);
    descriptor: (Ljava/lang/Void;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
        start local 1 // java.lang.Void aVoid
         0: .line 304
            return
        end local 1 // java.lang.Void aVoid
        end local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter$HandlerResultSubscriber;
            0    1     1  aVoid  Ljava/lang/Void;
    MethodParameters:
       Name  Flags
      aVoid  

  public void onError(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
        start local 1 // java.lang.Throwable ex
         0: .line 308
            getstatic org.springframework.http.server.reactive.ServletHttpHandlerAdapter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.logPrefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Failed to complete: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ex */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            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.trace:(Ljava/lang/Object;)V
         1: .line 309
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.isCompleted:Ljava/util/concurrent/atomic/AtomicBoolean;
            aload 0 /* this */
            aload 1 /* ex */
            invokedynamic run(Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter$HandlerResultSubscriber;Ljava/lang/Throwable;)Ljava/lang/Runnable;
              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:
                  ()V
                  org/springframework/http/server/reactive/ServletHttpHandlerAdapter$HandlerResultSubscriber.lambda$0(Ljava/lang/Throwable;)V (7)
                  ()V
            invokestatic org.springframework.http.server.reactive.ServletHttpHandlerAdapter.runIfAsyncNotComplete:(Ljavax/servlet/AsyncContext;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/lang/Runnable;)V
         2: .line 326
            return
        end local 1 // java.lang.Throwable ex
        end local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter$HandlerResultSubscriber;
            0    3     1    ex  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      ex    

  public void onComplete();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
         0: .line 330
            getstatic org.springframework.http.server.reactive.ServletHttpHandlerAdapter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.logPrefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Handling completed"
            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.trace:(Ljava/lang/Object;)V
         1: .line 331
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.isCompleted:Ljava/util/concurrent/atomic/AtomicBoolean;
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic run(Ljavax/servlet/AsyncContext;)Ljava/lang/Runnable;
              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:
                  ()V
                  javax/servlet/AsyncContext.complete()V (9 itf)
                  ()V
            invokestatic org.springframework.http.server.reactive.ServletHttpHandlerAdapter.runIfAsyncNotComplete:(Ljavax/servlet/AsyncContext;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/lang/Runnable;)V
         2: .line 332
            return
        end local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter$HandlerResultSubscriber;

  public void onNext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.Void
            invokevirtual org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.onNext:(Ljava/lang/Void;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void lambda$0(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
         0: .line 310
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.getResponse:()Ljavax/servlet/ServletResponse;
            invokeinterface javax.servlet.ServletResponse.isCommitted:()Z
            ifeq 5
         1: .line 311
            getstatic org.springframework.http.server.reactive.ServletHttpHandlerAdapter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.logPrefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Dispatch to container, to raise the error on servlet thread"
            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.trace:(Ljava/lang/Object;)V
         2: .line 312
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.getRequest:()Ljavax/servlet/ServletRequest;
            getstatic org.springframework.http.server.reactive.ServletHttpHandlerAdapter.WRITE_ERROR_ATTRIBUTE_NAME:Ljava/lang/String;
            aload 1
            invokeinterface javax.servlet.ServletRequest.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 313
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.dispatch:()V
         4: .line 314
            goto 13
         5: .line 317
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.http.server.reactive.ServletHttpHandlerAdapter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.logPrefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Setting ServletResponse status to 500 Server Error"
            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.trace:(Ljava/lang/Object;)V
         6: .line 318
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.getResponse:()Ljavax/servlet/ServletResponse;
            invokeinterface javax.servlet.ServletResponse.resetBuffer:()V
         7: .line 319
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.getResponse:()Ljavax/servlet/ServletResponse;
            checkcast javax.servlet.http.HttpServletResponse
            sipush 500
            invokeinterface javax.servlet.http.HttpServletResponse.setStatus:(I)V
         8: .line 320
            goto 12
         9: .line 321
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        10: .line 322
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.complete:()V
        11: .line 323
            aload 2
            athrow
        12: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber.asyncContext:Ljavax/servlet/AsyncContext;
            invokeinterface javax.servlet.AsyncContext.complete:()V
        13: .line 325
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/springframework/http/server/reactive/ServletHttpHandlerAdapter$HandlerResultSubscriber;
      Exception table:
        from    to  target  type
           5     9       9  any
}
Signature: Ljava/lang/Object;Lorg/reactivestreams/Subscriber<Ljava/lang/Void;>;
SourceFile: "ServletHttpHandlerAdapter.java"
NestHost: org.springframework.http.server.reactive.ServletHttpHandlerAdapter
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private HandlerResultSubscriber = org.springframework.http.server.reactive.ServletHttpHandlerAdapter$HandlerResultSubscriber of org.springframework.http.server.reactive.ServletHttpHandlerAdapter