/**
   * Inserts data into queue.
   *
   * @param data
   * @return true if data was successfully added
   */
  public boolean offer(byte[] data, PRIORITY priority)
      throws KeeperException, InterruptedException {
    while (true) {
      try {

        // WAS:
        // zookeeper.create(dir+"/"+prefix, data, acl,
        // CreateMode.PERSISTENT_SEQUENTIAL);
        zookeeper.create(
            dir + "/" + keyHandler.generateChildNamePrefix(priority),
            data,
            acl,
            CreateMode.PERSISTENT_SEQUENTIAL);
        return true;
      } catch (KeeperException.NoNodeException e) {
        zookeeper.create(dir, new byte[0], acl, CreateMode.PERSISTENT);
      }
    }
  }