Skip to content

Commit 59247ee

Browse files
committed
avoid intermediate copy from StringBuilder
1 parent acd352d commit 59247ee

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/EvaluatorBucketing.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77

88
import org.apache.commons.codec.digest.DigestUtils;
99

10+
import java.nio.charset.StandardCharsets;
11+
import java.nio.CharBuffer;
12+
import java.security.MessageDigest;
13+
1014
/**
1115
* Encapsulates the logic for percentage rollouts.
1216
*/
@@ -59,7 +63,9 @@ static float computeBucketValue(
5963
}
6064

6165
// turn the first 15 hex digits of this into a long
62-
byte[] hash = DigestUtils.sha1(keyBuilder.toString());
66+
MessageDigest digest = DigestUtils.getSha1Digest();
67+
digest.update(StandardCharsets.UTF_8.encode(CharBuffer.wrap(keyBuilder)));
68+
byte[] hash = digest.digest();
6369
long longVal = 0;
6470
for (int i = 0; i < 7; i++) {
6571
longVal <<= 8;

0 commit comments

Comments
 (0)