public Stat setData(File path, byte[] data, int version) throws KeeperException {
while (true) {
try {
return getZKClient().setData(path.toString(), data, version);
} catch (InterruptedException ie) {
throw new RuntimeInterruptedException(ie);
} catch (ConnectionLossException ke) {
LOG.debug("ZooKeeper connection lost.", ke);
LOG.debug("Retrying setData({}, {}, {}).", path, Bytes.toStringBinary(data), version);
} catch (SessionExpiredException see) {
LOG.debug("ZooKeeper session expired.", see);