code: private void unwatchInstance(final InstanceContext instance, final CountingCompletionHandler<Void> counter) {
      Handler<MapEvent<String, String>> watchHandler = watchHandlers.remove(instance.address());
      if (watchHandler != null) {
        data.unwatch(instance.status(), watchHandler, new Handler<AsyncResult<Void>>() {
          @Override
          public void handle(AsyncResult<Void> result) {
            data.remove(instance.address(), new Handler<AsyncResult<String>>() {
              @Override
              public void handle(AsyncResult<String> result) {
                if (result.failed()) {
                  counter.fail(result.cause());
                } else {
                  counter.succeed();
                }
              }
            });
          }
        });
      } else {
        data.remove(instance.address(), new Handler<AsyncResult<String>>() {
          @Override
          public void handle(AsyncResult<String> result) {
            if (result.failed()) {
              counter.fail(result.cause());
            } else {
              counter.succeed();
            }
          }
        });
      }
    }
docs: Unwatches a component instance's status and context.