abstract class com.google.common.util.concurrent.AbstractCatchingFuture<V, X extends java.lang.Throwable, F, T> extends com.google.common.util.concurrent.FluentFuture$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.FluentFuture$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 40
            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 41
            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 42
            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 50
            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 51
            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 52
            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 63
            aload 0 /* this */
            invokespecial com.google.common.util.concurrent.FluentFuture$TrustedFuture.<init>:()V
         1: .line 65
            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 66
            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 67
            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 68
            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=5, locals=10, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractCatchingFuture this
         0: .line 72
            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 73
            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 74
            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 75
            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
      StackMap locals:
      StackMap stack: int
         5: aload 2 /* localExceptionType */
            ifnonnull 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: int
         6: iconst_0
      StackMap locals: com.google.common.util.concurrent.AbstractCatchingFuture com.google.common.util.concurrent.ListenableFuture java.lang.Class java.lang.Object
      StackMap stack: int int
         7: ior
            aload 3 /* localFallback */
            ifnonnull 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack: int
         8: iconst_0
      StackMap locals: com.google.common.util.concurrent.AbstractCatchingFuture com.google.common.util.concurrent.ListenableFuture java.lang.Class java.lang.Object
      StackMap stack: int int
         9: ior
            ifne 11
        10: .line 77
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.isCancelled:()Z
            ifeq 12
        11: .line 78
      StackMap locals:
      StackMap stack:
            return
        12: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
        13: .line 83
            aconst_null
            astore 4 /* sourceResult */
        start local 4 // java.lang.Object sourceResult
        14: .line 84
            aconst_null
            astore 5 /* throwable */
        start local 5 // java.lang.Throwable throwable
        15: .line 86
            aload 1 /* localInputFuture */
            instanceof com.google.common.util.concurrent.internal.InternalFutureFailureAccess
            ifeq 19
        16: .line 89
            aload 1 /* localInputFuture */
            checkcast com.google.common.util.concurrent.internal.InternalFutureFailureAccess
        17: .line 88
            invokestatic com.google.common.util.concurrent.internal.InternalFutures.tryInternalFastPathGetFailure:(Lcom/google/common/util/concurrent/internal/InternalFutureFailureAccess;)Ljava/lang/Throwable;
        18: .line 87
            astore 5 /* throwable */
        19: .line 91
      StackMap locals: java.lang.Object java.lang.Throwable
      StackMap stack:
            aload 5 /* throwable */
            ifnonnull 37
        20: .line 92
            aload 1 /* localInputFuture */
            invokestatic com.google.common.util.concurrent.Futures.getDone:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
            astore 4 /* sourceResult */
        21: .line 94
            goto 37
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
        22: astore 6 /* e */
        start local 6 // java.util.concurrent.ExecutionException e
        23: .line 95
            aload 6 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            astore 5 /* throwable */
        24: .line 96
            aload 5 /* throwable */
            ifnonnull 37
        25: .line 98
            new java.lang.NullPointerException
            dup
        26: .line 99
            new java.lang.StringBuilder
            dup
            ldc "Future type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        27: .line 100
            aload 1 /* localInputFuture */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        28: .line 101
            ldc " threw "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 102
            aload 6 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        30: .line 103
            ldc " without a cause"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 99
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 98
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
        33: .line 97
            astore 5 /* throwable */
        end local 6 // java.util.concurrent.ExecutionException e
        34: goto 37
        35: .line 105
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
        36: .line 106
            aload 6 /* e */
            astore 5 /* throwable */
        end local 6 // java.lang.Throwable e
        37: .line 109
      StackMap locals:
      StackMap stack:
            aload 5 /* throwable */
            ifnonnull 40
        38: .line 110
            aload 0 /* this */
            aload 4 /* sourceResult */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.set:(Ljava/lang/Object;)Z
            pop
        39: .line 111
            return
        40: .line 114
      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 43
        41: .line 115
            aload 0 /* this */
            aload 1 /* localInputFuture */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.setFuture:(Lcom/google/common/util/concurrent/ListenableFuture;)Z
            pop
        42: .line 117
            return
        43: .line 121
      StackMap locals:
      StackMap stack:
            aload 5 /* throwable */
            astore 6 /* castThrowable */
        start local 6 // java.lang.Throwable castThrowable
        44: .line 124
            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
        45: .line 125
            goto 55
        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
        46: astore 8 /* t */
        start local 8 // java.lang.Throwable t
        47: .line 126
            aload 0 /* this */
            aload 8 /* t */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.setException:(Ljava/lang/Throwable;)Z
            pop
        48: .line 129
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
        49: .line 130
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
        50: .line 127
            return
        end local 8 // java.lang.Throwable t
        51: .line 128
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        52: .line 129
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
        53: .line 130
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
        54: .line 131
            aload 9
            athrow
        start local 7 // java.lang.Object fallbackResult
        55: .line 129
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
        56: .line 130
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
        57: .line 133
            aload 0 /* this */
            aload 7 /* fallbackResult */
            invokevirtual com.google.common.util.concurrent.AbstractCatchingFuture.setResult:(Ljava/lang/Object;)V
        58: .line 134
            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   59     0                this  Lcom/google/common/util/concurrent/AbstractCatchingFuture<TV;TX;TF;TT;>;
            1   59     1    localInputFuture  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
            2   59     2  localExceptionType  Ljava/lang/Class<TX;>;
            3   59     3       localFallback  TF;
           14   59     4        sourceResult  TV;
           15   59     5           throwable  Ljava/lang/Throwable;
           23   34     6                   e  Ljava/util/concurrent/ExecutionException;
           36   37     6                   e  Ljava/lang/Throwable;
           44   59     6       castThrowable  TX;
           45   46     7      fallbackResult  TT;
           55   59     7      fallbackResult  TT;
           47   51     8                   t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    21      22  Class java.util.concurrent.ExecutionException
          15    21      35  Class java.lang.Throwable
          44    45      46  Class java.lang.Throwable
          44    48      51  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 138
            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 139
            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 140
            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 141
            aload 0 /* this */
            invokespecial com.google.common.util.concurrent.FluentFuture$TrustedFuture.pendingToString:()Ljava/lang/String;
            astore 4 /* superString */
        start local 4 // java.lang.String superString
         4: .line 142
            ldc ""
            astore 5 /* resultString */
        start local 5 // java.lang.String resultString
         5: .line 143
            aload 1 /* localInputFuture */
            ifnull 7
         6: .line 144
            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 146
      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 147
            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 148
            ldc "exceptionType=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 149
            aload 2 /* localExceptionType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 150
            ldc "], fallback=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 151
            aload 3 /* localFallback */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        13: .line 152
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 147
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        15: .line 153
      StackMap locals:
      StackMap stack:
            aload 4 /* superString */
            ifnull 17
        16: .line 154
            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 156
      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 169
            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 170
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.inputFuture:Lcom/google/common/util/concurrent/ListenableFuture;
         2: .line 171
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.exceptionType:Ljava/lang/Class;
         3: .line 172
            aload 0 /* this */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractCatchingFuture.fallback:Ljava/lang/Object;
         4: .line 173
            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/FluentFuture$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.FluentFuture$TrustedFuture of com.google.common.util.concurrent.FluentFuture
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible()