abstract class com.google.common.util.concurrent.AbstractCatchingFuture<V, X extends java.lang.Throwable, F, T> extends com.google.common.util.concurrent.AbstractFuture$TrustedFuture<V> implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.common.util.concurrent.AbstractCatchingFuture
  super_class: com.google.common.util.concurrent.AbstractFuture$TrustedFuture
{
  com.google.common.util.concurrent.ListenableFuture<? extends V> inputFuture;
    descriptor: Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0000) 
    Signature: Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  java.lang.Class<X> exceptionType;
    descriptor: Ljava/lang/Class;
    flags: (0x0000) 
    Signature: Ljava/lang/Class<TX;>;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  F fallback;
    descriptor: Ljava/lang/Object;
    flags: (0x0000) 
    Signature: TF;
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  static <V, X extends java.lang.Throwable> com.google.common.util.concurrent.ListenableFuture<V> create(com.google.common.util.concurrent.ListenableFuture<? extends V>, java.lang.Class<X>, com.google.common.base.Function<? super X, ? extends V>, java.util.concurrent.Executor);
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;Ljava/lang/Class;Lcom/google/common/base/Function;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.google.common.util.concurrent.ListenableFuture input
        start local 1 // java.lang.Class exceptionType
        start local 2 // com.google.common.base.Function fallback
        start local 3 // java.util.concurrent.Executor executor
         0: .line 38
            new com.google.common.util.concurrent.AbstractCatchingFuture$CatchingFuture
            dup
            aload 0 /* input */
            aload 1 /* exceptionType */
            aload 2 /* fallback */
            invokespecial com.google.common.util.concurrent.AbstractCatchingFuture$CatchingFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;Ljava/lang/Class;Lcom/google/common/base/Function;)V
            astore 4 /* future */
        start local 4 // com.google.common.util.concurrent.AbstractCatchingFuture$CatchingFuture future
         1: .line 39
            aload 0 /* input */
            aload 4 /* future */
            aload 3 /* executor */
            aload 4 /* future */
            invokestatic com.google.common.util.concurrent.MoreExecutors.rejectionPropagatingExecutor:(Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture;)Ljava/util/concurrent/Executor;
            invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
         2: .line 40
            aload 4 /* future */
            areturn
        end local 4 // com.google.common.util.concurrent.AbstractCatchingFuture$CatchingFuture future
        end local 3 // java.util.concurrent.Executor executor
        end local 2 // com.google.common.base.Function fallback
        end local 1 // java.lang.Class exceptionType
        end local 0 // com.google.common.util.concurrent.ListenableFuture input
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0          input  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
            0    3     1  exceptionType  Ljava/lang/Class<TX;>;
            0    3     2       fallback  Lcom/google/common/base/Function<-TX;+TV;>;
            0    3     3       executor  Ljava/util/concurrent/Executor;
            1    3     4         future  Lcom/google/common/util/concurrent/AbstractCatchingFuture$CatchingFuture<TV;TX;>;
    Signature: <V:Ljava/lang/Object;X:Ljava/lang/Throwable;>(Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;Ljava/lang/Class<TX;>;Lcom/google/common/base/Function<-TX;+TV;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
    MethodParameters:
               Name  Flags
      input          
      exceptionType  
      fallback       
      executor       

  static <X extends java.lang.Throwable, V> com.google.common.util.concurrent.ListenableFuture<V> create(com.google.common.util.concurrent.ListenableFuture<? extends V>, java.lang.Class<X>, com.google.common.util.concurrent.AsyncFunction<? super X, ? extends V>, java.util.concurrent.Executor);
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;Ljava/lang/Class;Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.google.common.util.concurrent.ListenableFuture input
        start local 1 // java.lang.Class exceptionType
        start local 2 // com.google.common.util.concurrent.AsyncFunction fallback
        start local 3 // java.util.concurrent.Executor executor
         0: .line 48
            new com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture
            dup
            aload 0 /* input */
            aload 1 /* exceptionType */
            aload 2 /* fallback */
            invokespecial com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;Ljava/lang/Class;Lcom/google/common/util/concurrent/AsyncFunction;)V
            astore 4 /* future */
        start local 4 // com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture future
         1: .line 49
            aload 0 /* input */
            aload 4 /* future */
            aload 3 /* executor */
            aload 4 /* future */
            invokestatic com.google.common.util.concurrent.MoreExecutors.rejectionPropagatingExecutor:(Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture;)Ljava/util/concurrent/Executor;
            invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
         2: .line 50
            aload 4 /* future */
            areturn
        end local 4 // com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture future
        end local 3 // java.util.concurrent.Executor executor
        end local 2 // com.google.common.util.concurrent.AsyncFunction fallback
        end local 1 // java.lang.Class exceptionType
        end local 0 // com.google.common.util.concurrent.ListenableFuture input
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0          input  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
            0    3     1  exceptionType  Ljava/lang/Class<TX;>;
            0    3     2       fallback  Lcom/google/common/util/concurrent/AsyncFunction<-TX;+TV;>;
            0    3     3       executor  Ljava/util/concurrent/Executor;
            1    3     4         future  Lcom/google/common/util/concurrent/AbstractCatchingFuture$AsyncCatchingFuture<TV;TX;>;
    Signature: <X:Ljava/lang/Throwable;V:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;Ljava/lang/Class<TX;>;Lcom/google/common/util/concurrent/AsyncFunction<-TX;+TV;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
    MethodParameters:
               Name  Flags
      input          
      exceptionType  
      fallback       
      executor       

  void <init>(com.google.common.util.concurrent.ListenableFuture<? extends V>, java.lang.Class<X>, );
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;Ljava/lang/Class;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
        start local 1 // com.google.common.util.concurrent.ListenableFuture inputFuture
        start local 2 // java.lang.Class exceptionType
        start local 3 // java.lang.Object fallback
         0: .line 61
            aload 0 /* this */
            invokespecial com.google.common.util.concurrent.AbstractFuture$TrustedFuture.<init>:()V
         1: .line 63
            aload 0 /* this */
            aload 1 /* inputFuture */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.util.concurrent.ListenableFuture
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
         2: .line 64
            aload 0 /* this */
            aload 2 /* exceptionType */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
         3: .line 65
            aload 0 /* this */
            aload 3 /* fallback */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
         4: .line 66
            return
        end local 3 // java.lang.Object fallback
        end local 2 // java.lang.Class exceptionType
        end local 1 // com.google.common.util.concurrent.ListenableFuture inputFuture
        end local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/google/common/util/concurrent/AbstractCatchingFuture<TV;TX;TF;TT;>;
            0    5     1    inputFuture  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
            0    5     2  exceptionType  Ljava/lang/Class<TX;>;
            0    5     3       fallback  TF;
    Signature: (Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;Ljava/lang/Class<TX;>;TF;)V
    MethodParameters:
               Name  Flags
      inputFuture    
      exceptionType  
      fallback       

  public final void run();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=10, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
         0: .line 70
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractCatchingFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
            astore 1 /* localInputFuture */
        start local 1 // com.google.common.util.concurrent.ListenableFuture localInputFuture
         1: .line 71
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
            astore 2 /* localExceptionType */
        start local 2 // java.lang.Class localExceptionType
         2: .line 72
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
            astore 3 /* localFallback */
        start local 3 // java.lang.Object localFallback
         3: .line 73
            aload 1 /* localInputFuture */
            ifnonnull 4
            iconst_1
            goto 5
      StackMap locals: com.google.common.util.concurrent.ListenableFuture java.lang.Class java.lang.Object
      StackMap stack:
         4: iconst_0
         5: .line 74
      StackMap locals:
      StackMap stack: int
            aload 2 /* localExceptionType */
            ifnonnull 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: int
         6: iconst_0
         7: .line 73
      StackMap locals: com.google.common.util.concurrent.AbstractCatchingFuture com.google.common.util.concurrent.ListenableFuture java.lang.Class java.lang.Object
      StackMap stack: int int
            ior
         8: .line 75
            aload 3 /* localFallback */
            ifnonnull 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack: int
         9: iconst_0
        10: .line 73
      StackMap locals: com.google.common.util.concurrent.AbstractCatchingFuture com.google.common.util.concurrent.ListenableFuture java.lang.Class java.lang.Object
      StackMap stack: int int
            ior
        11: .line 76
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.isCancelled:()Z
            ior
            ifeq 13
        12: .line 77
            return
        13: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
        14: .line 82
            aconst_null
            astore 4 /* sourceResult */
        start local 4 // java.lang.Object sourceResult
        15: .line 83
            aconst_null
            astore 5 /* throwable */
        start local 5 // java.lang.Throwable throwable
        16: .line 85
            aload 1 /* localInputFuture */
            invokestatic com.google.common.util.concurrent.Futures.getDone:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
            astore 4 /* sourceResult */
        17: .line 86
            goto 23
      StackMap locals: com.google.common.util.concurrent.AbstractCatchingFuture com.google.common.util.concurrent.ListenableFuture java.lang.Class java.lang.Object java.lang.Object java.lang.Throwable
      StackMap stack: java.util.concurrent.ExecutionException
        18: astore 6 /* e */
        start local 6 // java.util.concurrent.ExecutionException e
        19: .line 87
            aload 6 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Throwable
            astore 5 /* throwable */
        end local 6 // java.util.concurrent.ExecutionException e
        20: goto 23
        21: .line 88
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
        22: .line 89
            aload 6 /* e */
            astore 5 /* throwable */
        end local 6 // java.lang.Throwable e
        23: .line 92
      StackMap locals:
      StackMap stack:
            aload 5 /* throwable */
            ifnonnull 26
        24: .line 93
            aload 0 /* this */
            aload 4 /* sourceResult */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.set:(Ljava/lang/Object;)Z
            pop
        25: .line 94
            return
        26: .line 97
      StackMap locals:
      StackMap stack:
            aload 5 /* throwable */
            aload 2 /* localExceptionType */
            invokestatic com.google.common.util.concurrent.Platform.isInstanceOfThrowableClass:(Ljava/lang/Throwable;Ljava/lang/Class;)Z
            ifne 29
        27: .line 98
            aload 0 /* this */
            aload 5 /* throwable */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.setException:(Ljava/lang/Throwable;)Z
            pop
        28: .line 100
            return
        29: .line 104
      StackMap locals:
      StackMap stack:
            aload 5 /* throwable */
            astore 6 /* castThrowable */
        start local 6 // java.lang.Throwable castThrowable
        30: .line 107
            aload 0 /* this */
            aload 3 /* localFallback */
            aload 6 /* castThrowable */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.doFallback:(Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;
            astore 7 /* fallbackResult */
        start local 7 // java.lang.Object fallbackResult
        31: .line 108
            goto 41
        end local 7 // java.lang.Object fallbackResult
      StackMap locals: com.google.common.util.concurrent.AbstractCatchingFuture com.google.common.util.concurrent.ListenableFuture java.lang.Class java.lang.Object java.lang.Object java.lang.Throwable java.lang.Throwable
      StackMap stack: java.lang.Throwable
        32: astore 8 /* t */
        start local 8 // java.lang.Throwable t
        33: .line 109
            aload 0 /* this */
            aload 8 /* t */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.setException:(Ljava/lang/Throwable;)Z
            pop
        34: .line 112
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
        35: .line 113
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
        36: .line 110
            return
        end local 8 // java.lang.Throwable t
        37: .line 111
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        38: .line 112
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
        39: .line 113
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
        40: .line 114
            aload 9
            athrow
        start local 7 // java.lang.Object fallbackResult
        41: .line 112
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
        42: .line 113
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
        43: .line 116
            aload 0 /* this */
            aload 7 /* fallbackResult */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.setResult:(Ljava/lang/Object;)V
        44: .line 117
            return
        end local 7 // java.lang.Object fallbackResult
        end local 6 // java.lang.Throwable castThrowable
        end local 5 // java.lang.Throwable throwable
        end local 4 // java.lang.Object sourceResult
        end local 3 // java.lang.Object localFallback
        end local 2 // java.lang.Class localExceptionType
        end local 1 // com.google.common.util.concurrent.ListenableFuture localInputFuture
        end local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   45     0                this  Lcom/google/common/util/concurrent/AbstractCatchingFuture<TV;TX;TF;TT;>;
            1   45     1    localInputFuture  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
            2   45     2  localExceptionType  Ljava/lang/Class<TX;>;
            3   45     3       localFallback  TF;
           15   45     4        sourceResult  TV;
           16   45     5           throwable  Ljava/lang/Throwable;
           19   20     6                   e  Ljava/util/concurrent/ExecutionException;
           22   23     6                   e  Ljava/lang/Throwable;
           30   45     6       castThrowable  TX;
           31   32     7      fallbackResult  TT;
           41   45     7      fallbackResult  TT;
           33   37     8                   t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          16    17      18  Class java.util.concurrent.ExecutionException
          16    17      21  Class java.lang.Throwable
          30    31      32  Class java.lang.Throwable
          30    34      37  any

  protected java.lang.String pendingToString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
         0: .line 121
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractCatchingFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
            astore 1 /* localInputFuture */
        start local 1 // com.google.common.util.concurrent.ListenableFuture localInputFuture
         1: .line 122
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
            astore 2 /* localExceptionType */
        start local 2 // java.lang.Class localExceptionType
         2: .line 123
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
            astore 3 /* localFallback */
        start local 3 // java.lang.Object localFallback
         3: .line 124
            aload 0 /* this */
            invokespecial com.google.common.util.concurrent.AbstractFuture$TrustedFuture.pendingToString:()Ljava/lang/String;
            astore 4 /* superString */
        start local 4 // java.lang.String superString
         4: .line 125
            ldc ""
            astore 5 /* resultString */
        start local 5 // java.lang.String resultString
         5: .line 126
            aload 1 /* localInputFuture */
            ifnull 7
         6: .line 127
            new java.lang.StringBuilder
            dup
            ldc "inputFuture=["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* localInputFuture */
            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;
            astore 5 /* resultString */
         7: .line 129
      StackMap locals: com.google.common.util.concurrent.AbstractCatchingFuture com.google.common.util.concurrent.ListenableFuture java.lang.Class java.lang.Object java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* localExceptionType */
            ifnull 15
            aload 3 /* localFallback */
            ifnull 15
         8: .line 130
            new java.lang.StringBuilder
            dup
            aload 5 /* resultString */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 131
            ldc "exceptionType=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 132
            aload 2 /* localExceptionType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 133
            ldc "], fallback=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 134
            aload 3 /* localFallback */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        13: .line 135
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 130
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        15: .line 136
      StackMap locals:
      StackMap stack:
            aload 4 /* superString */
            ifnull 17
        16: .line 137
            new java.lang.StringBuilder
            dup
            aload 5 /* resultString */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* superString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        17: .line 139
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.lang.String resultString
        end local 4 // java.lang.String superString
        end local 3 // java.lang.Object localFallback
        end local 2 // java.lang.Class localExceptionType
        end local 1 // com.google.common.util.concurrent.ListenableFuture localInputFuture
        end local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   18     0                this  Lcom/google/common/util/concurrent/AbstractCatchingFuture<TV;TX;TF;TT;>;
            1   18     1    localInputFuture  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
            2   18     2  localExceptionType  Ljava/lang/Class<TX;>;
            3   18     3       localFallback  TF;
            4   18     4         superString  Ljava/lang/String;
            5   18     5        resultString  Ljava/lang/String;

  abstract T doFallback(F, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception
    Signature: (TF;TX;)TT;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.ForOverride()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
           Name  Flags
      fallback   
      throwable  

  abstract void setResult();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0400) ACC_ABSTRACT
    Signature: (TT;)V
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.ForOverride()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
        Name  Flags
      result  

  protected final void afterDone();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
         0: .line 152
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractCatchingFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.maybePropagateCancellationTo:(Ljava/util/concurrent/Future;)V
         1: .line 153
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
         2: .line 154
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
         3: .line 155
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
         4: .line 156
            return
        end local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/google/common/util/concurrent/AbstractCatchingFuture<TV;TX;TF;TT;>;
}
Signature: <V:Ljava/lang/Object;X:Ljava/lang/Throwable;F:Ljava/lang/Object;T:Ljava/lang/Object;>Lcom/google/common/util/concurrent/AbstractFuture$TrustedFuture<TV;>;Ljava/lang/Runnable;
SourceFile: "AbstractCatchingFuture.java"
NestMembers:
  com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture  com.google.common.util.concurrent.AbstractCatchingFuture$CatchingFuture
InnerClasses:
  private final AsyncCatchingFuture = com.google.common.util.concurrent.AbstractCatchingFuture$AsyncCatchingFuture of com.google.common.util.concurrent.AbstractCatchingFuture
  private final CatchingFuture = com.google.common.util.concurrent.AbstractCatchingFuture$CatchingFuture of com.google.common.util.concurrent.AbstractCatchingFuture
  abstract TrustedFuture = com.google.common.util.concurrent.AbstractFuture$TrustedFuture of com.google.common.util.concurrent.AbstractFuture
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible()