code: private void removeListenersOfPendingCachedRequest(final SpiceRequest<?> request) throws InterruptedException {
          synchronized (mapPendingRequestToRequestListener) {
              for (final CachedSpiceRequest<?> cachedSpiceRequest : mapPendingRequestToRequestListener.keySet()) {
                  if (match(cachedSpiceRequest, request)) {
                      waitForServiceToBeBound();
                      if (spiceService == null) {
                          return;
                      }
                      final Set<RequestListener<?>> setRequestListeners = mapPendingRequestToRequestListener.get(cachedSpiceRequest);
                      spiceService.dontNotifyRequestListenersForRequest(cachedSpiceRequest, setRequestListeners);
                      mapPendingRequestToRequestListener.remove(cachedSpiceRequest);
                      break;
                  }
              }
          }
      }
docs: Remove all listeners of a request that may have already been passed to
  the {@link SpiceService}. If the request has already been passed to the
  {@link SpiceService}, the method will bind to the service and ask it to
  remove listeners.
  @param request
  the request for which listeners must be unregistered.