diff --git a/lang/java/avro/src/main/java/org/apache/avro/util/Utf8.java b/lang/java/avro/src/main/java/org/apache/avro/util/Utf8.java index 9238fd78c65..d14e72a5c70 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/util/Utf8.java +++ b/lang/java/avro/src/main/java/org/apache/avro/util/Utf8.java @@ -158,6 +158,9 @@ public boolean equals(Object o) { Utf8 that = (Utf8) o; if (!(this.length == that.length)) return false; + if (this.length > 7) { + return Arrays.equals(this.bytes, 0, this.length, that.bytes, 0, that.length); + } byte[] thatBytes = that.bytes; for (int i = 0; i < this.length; i++) if (bytes[i] != thatBytes[i])