docs: private Observable<Indexable> invokeAfterPostRunAsync(final TaskGroupEntry<TaskItem> entry,
                                                            final InvocationContext context) {
          return Observable.defer(new Func0<Observable<Indexable>>() {
              @Override
              public Observable<Indexable> call() {
                  final ProxyTaskItem proxyTaskItem = (ProxyTaskItem) entry.data();
                  if (proxyTaskItem == null) {
                      return Observable.empty();
                  }
                  final boolean isFaulted = entry.hasFaultedDescentDependencyTasks() || isGroupCancelled.get();
  
                  Observable<Indexable> postRunObservable = proxyTaskItem.invokeAfterPostRunAsync(isFaulted).toObservable();
                  Func1<Throwable, Observable<Indexable>> onError = new Func1<Throwable, Observable<Indexable>>() {
                      @Override
                      public Observable<Indexable> call(final Throwable error) {
                          return processFaultedTaskAsync(entry, error, context);
                      }
                  };
                  Func0<Observable<Indexable>> onComplete = new Func0<Observable<Indexable>>() {
                      @Override
                      public Observable<Indexable> call() {
                          if (isFaulted) {
                              if (entry.hasFaultedDescentDependencyTasks()) {
                                  return processFaultedTaskAsync(entry, new ErroredDependencyTaskException(), context);
                              } else {
                                  return processFaultedTaskAsync(entry, taskCancelledException, context);
                              }
                          } else {
                              return Observable.concat(Observable.just(proxyTaskItem.result()),
                                      processCompletedTaskAsync(entry, context));
                          }
                      }
                  };
                  return postRunObservable.flatMap(null, // no onNext call as stream is created from Completable.
                          onError,
                          onComplete);
              }
          });
      }