From 9a527c6d66da87cc595cc0d73a3ff8f1371e8523 Mon Sep 17 00:00:00 2001 From: jmestwa-coder Date: Tue, 2 Jun 2026 12:23:50 +0530 Subject: [PATCH] encode node path as UTF-8 in DigestCalculator --- .../java/org/apache/zookeeper/server/DigestCalculator.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DigestCalculator.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DigestCalculator.java index 1209aba115c..6389223ce06 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DigestCalculator.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DigestCalculator.java @@ -19,6 +19,7 @@ package org.apache.zookeeper.server; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import java.util.zip.CRC32; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.data.StatPersisted; @@ -30,7 +31,7 @@ public class DigestCalculator { // The hardcoded digest version, should bump up this version whenever // we changed the digest method or fields. - private static final int DIGEST_VERSION = 2; + private static final int DIGEST_VERSION = 3; /** @@ -95,7 +96,7 @@ long calculateDigest(String path, byte[] data, StatPersisted stat) { bb.putLong(stat.getEphemeralOwner()); CRC32 crc = new CRC32(); - crc.update(path.getBytes()); + crc.update(path.getBytes(StandardCharsets.UTF_8)); if (data != null) { crc.update(data); }