final class com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture<V, X extends java.lang.Throwable> extends com.google.common.util.concurrent.AbstractCatchingFuture<V, X, com.google.common.util.concurrent.AsyncFunction<? super X, ? extends V>, com.google.common.util.concurrent.ListenableFuture<? extends V>>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture
  super_class: com.google.common.util.concurrent.AbstractCatchingFuture
{
  void <init>(com.google.common.util.concurrent.ListenableFuture<? extends V>, java.lang.Class<X>, com.google.common.util.concurrent.AsyncFunction<? super X, ? extends V>);
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;Ljava/lang/Class;Lcom/google/common/util/concurrent/AsyncFunction;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture this
        start local 1 // com.google.common.util.concurrent.ListenableFuture input
        start local 2 // java.lang.Class exceptionType
        start local 3 // com.google.common.util.concurrent.AsyncFunction fallback
         0: .line 169
            aload 0 /* this */
            aload 1 /* input */
            aload 2 /* exceptionType */
            aload 3 /* fallback */
            invokespecial com.google.common.util.concurrent.AbstractCatchingFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;Ljava/lang/Class;Ljava/lang/Object;)V
         1: .line 170
            return
        end local 3 // com.google.common.util.concurrent.AsyncFunction fallback
        end local 2 // java.lang.Class exceptionType
        end local 1 // com.google.common.util.concurrent.ListenableFuture input
        end local 0 // com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/google/common/util/concurrent/AbstractCatchingFuture$AsyncCatchingFuture<TV;TX;>;
            0    2     1          input  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
            0    2     2  exceptionType  Ljava/lang/Class<TX;>;
            0    2     3       fallback  Lcom/google/common/util/concurrent/AsyncFunction<-TX;+TV;>;
    Signature: (Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;Ljava/lang/Class<TX;>;Lcom/google/common/util/concurrent/AsyncFunction<-TX;+TV;>;)V
    MethodParameters:
               Name  Flags
      input          
      exceptionType  
      fallback       

  com.google.common.util.concurrent.ListenableFuture<? extends V> doFallback(com.google.common.util.concurrent.AsyncFunction<? super X, ? extends V>, X);
    descriptor: (Lcom/google/common/util/concurrent/AsyncFunction;Ljava/lang/Throwable;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture this
        start local 1 // com.google.common.util.concurrent.AsyncFunction fallback
        start local 2 // java.lang.Throwable cause
         0: .line 175
            aload 1 /* fallback */
            aload 2 /* cause */
            invokeinterface com.google.common.util.concurrent.AsyncFunction.apply:(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
            astore 3 /* replacement */
        start local 3 // com.google.common.util.concurrent.ListenableFuture replacement
         1: .line 177
            aload 3 /* replacement */
         2: .line 178
            ldc "AsyncFunction.apply returned null instead of a Future. Did you mean to return immediateFuture(null)?"
         3: .line 176
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 180
            aload 3 /* replacement */
            areturn
        end local 3 // com.google.common.util.concurrent.ListenableFuture replacement
        end local 2 // java.lang.Throwable cause
        end local 1 // com.google.common.util.concurrent.AsyncFunction fallback
        end local 0 // com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lcom/google/common/util/concurrent/AbstractCatchingFuture$AsyncCatchingFuture<TV;TX;>;
            0    5     1     fallback  Lcom/google/common/util/concurrent/AsyncFunction<-TX;+TV;>;
            0    5     2        cause  TX;
            1    5     3  replacement  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
    Exceptions:
      throws java.lang.Exception
    Signature: (Lcom/google/common/util/concurrent/AsyncFunction<-TX;+TV;>;TX;)Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
    MethodParameters:
          Name  Flags
      fallback  
      cause     

  void setResult(com.google.common.util.concurrent.ListenableFuture<? extends V>);
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture this
        start local 1 // com.google.common.util.concurrent.ListenableFuture result
         0: .line 185
            aload 0 /* this */
            aload 1 /* result */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setFuture:(Lcom/google/common/util/concurrent/ListenableFuture;)Z
            pop
         1: .line 186
            return
        end local 1 // com.google.common.util.concurrent.ListenableFuture result
        end local 0 // com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/google/common/util/concurrent/AbstractCatchingFuture$AsyncCatchingFuture<TV;TX;>;
            0    2     1  result  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
    Signature: (Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;)V
    MethodParameters:
        Name  Flags
      result  

  java.lang.Object doFallback(java.lang.Object, java.lang.Throwable);
    descriptor: (Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;
    flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast com.google.common.util.concurrent.AsyncFunction
            aload 2
            checkcast java.lang.Throwable
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.doFallback:(Lcom/google/common/util/concurrent/AsyncFunction;Ljava/lang/Throwable;)Lcom/google/common/util/concurrent/ListenableFuture;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  void setResult(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.google.common.util.concurrent.ListenableFuture
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.setResult:(Lcom/google/common/util/concurrent/ListenableFuture;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <V:Ljava/lang/Object;X:Ljava/lang/Throwable;>Lcom/google/common/util/concurrent/AbstractCatchingFuture<TV;TX;Lcom/google/common/util/concurrent/AsyncFunction<-TX;+TV;>;Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;>;
SourceFile: "AbstractCatchingFuture.java"
NestHost: com.google.common.util.concurrent.AbstractCatchingFuture
InnerClasses:
  private final AsyncCatchingFuture = com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture of com.google.common.util.concurrent.AbstractCatchingFuture