@Test
  public void testUpdateListener() throws Exception {
    Log.info(Log.FAC_TEST, "Starting testUpdateListener");

    SaveType saveType = SaveType.REPOSITORY;
    NDNHandle writeHandle = NDNHandle.open();
    NDNHandle readHandle = NDNHandle.open();

    try {
      ContentName testName =
          new ContentName(testHelper.getTestNamespace("testUpdateListener"), stringObjName);

      NDNStringObject writeObject =
          new NDNStringObject(testName, "Something to listen to.", saveType, writeHandle);
      writeObject.save();

      CounterListener ourListener = new CounterListener();
      NDNStringObject readObject = new NDNStringObject(testName, null, null, readHandle);
      readObject.addListener(ourListener);
      boolean result = readObject.update();

      Assert.assertTrue(result);
      Assert.assertTrue(ourListener.getCounter() == 1);

      readObject.updateInBackground();

      writeObject.save("New stuff! New stuff!");
      synchronized (readObject) {
        while (ourListener.getCounter() == 1) readObject.wait();
      }
      // For some reason, we're getting two updates on our updateInBackground...
      Assert.assertTrue(ourListener.getCounter() > 1);
    } finally {
      writeHandle.close();
      readHandle.close();
      KeyManager.closeDefaultKeyManager();
    }

    Log.info(Log.FAC_TEST, "Completed testUpdateListener");
  }