aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-11-01 16:11:31 +0100
committerGitHub <noreply@github.com>2021-11-01 16:11:31 +0100
commit17fbfda757924a90ea71c9260ea22eab1a7c3949 (patch)
tree313864a00656f1aed57456dbbc46be9688d4ef0f /vespajlib
parentf2d3685aff36e286a4aafdb90a019bbad36ddc0d (diff)
parentbac8ab58a18d25db1871d3e933cb0cc018be5439 (diff)
Merge pull request #19813 from vespa-engine/vekterli/use-utf8-ordering-for-string-result-nodes
Use UTF-8 bytewise ordering for Java StringResultNode comparisons
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/abi-spec.json1
-rw-r--r--vespajlib/src/main/java/com/yahoo/vespa/objects/Identifiable.java9
2 files changed, 7 insertions, 3 deletions
diff --git a/vespajlib/abi-spec.json b/vespajlib/abi-spec.json
index c426195bc37..5eeee267cf6 100644
--- a/vespajlib/abi-spec.json
+++ b/vespajlib/abi-spec.json
@@ -3428,6 +3428,7 @@
"protected static com.yahoo.vespa.objects.Identifiable deserializeOptional(com.yahoo.vespa.objects.Deserializer)",
"protected static boolean equals(java.lang.Object, java.lang.Object)",
"public void visitMembers(com.yahoo.vespa.objects.ObjectVisitor)",
+ "protected static byte[] getRawUtf8Bytes(com.yahoo.vespa.objects.Deserializer)",
"protected java.lang.String getUtf8(com.yahoo.vespa.objects.Deserializer)",
"protected void putUtf8(com.yahoo.vespa.objects.Serializer, java.lang.String)",
"public bridge synthetic java.lang.Object clone()"
diff --git a/vespajlib/src/main/java/com/yahoo/vespa/objects/Identifiable.java b/vespajlib/src/main/java/com/yahoo/vespa/objects/Identifiable.java
index 8c11a0cbda1..947b312ac3b 100644
--- a/vespajlib/src/main/java/com/yahoo/vespa/objects/Identifiable.java
+++ b/vespajlib/src/main/java/com/yahoo/vespa/objects/Identifiable.java
@@ -354,10 +354,13 @@ public class Identifiable extends Selectable implements Cloneable {
}
}
- protected String getUtf8(Deserializer buf) {
+ protected static byte[] getRawUtf8Bytes(Deserializer buf) {
int len = buf.getInt(null);
- byte[] arr = buf.getBytes(null, len);
- return Utf8.toString(arr);
+ return buf.getBytes(null, len);
+ }
+
+ protected String getUtf8(Deserializer buf) {
+ return Utf8.toString(getRawUtf8Bytes(buf));
}
protected void putUtf8(Serializer buf, String val) {