code: public static UnbindFuture combineFutures(UnbindFuture future1, UnbindFuture future2) {
          if (future1 == null || future1.isUnbound()) {
              return future2;
          }
          else if (future2 == null || future2.isUnbound()) {
              return future1;
          }
          else {
              return new CompositeUnbindFuture(Arrays.asList(future1, future2));
          }
      }
docs: Combine futures in a way that minimizes cost(no object creation) for the common case where
  both have already been fulfilled.