public int removeSubscription(String subscriptionId) {

    String xPath = consumerListmanager.getTokenBySubscriptionId(subscriptionId);
    int result = consumerListmanager.removeFromConsumerList(subscriptionId, xPath);
    if (result == 0) {
      return 0;
    }
    int currentConsumerCount = consumerListmanager.getConsumerListByToken(xPath).size();
    if (currentConsumerCount == 0) {
      Integer yFilterId = xPathToYFilterId.get(xPath);
      Query q = yFilterIdToQuery.get(yFilterId);
      yfilter.deleteQuery(q, q.getQueryId());
      yFilterIdToQuery.remove(yFilterId);
    }
    counter--;
    return result;
  }