This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/main by this push:
new dad0d20c5 AVRO-3956: [Java] Fix NPE in Protocol#equals (#2791)
dad0d20c5 is described below
commit dad0d20c5ea10a6347836b3936783fd5124731cc
Author: Roman Mitasov <[email protected]>
AuthorDate: Tue Mar 19 19:36:30 2024 +0600
AVRO-3956: [Java] Fix NPE in Protocol#equals (#2791)
* Fix NPE in Protocol#equals
* Better Protocol#hashCode
---
lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java | 3 ++-
lang/java/avro/src/main/java/org/apache/avro/Protocol.java | 8 +++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java
b/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java
index 300e583b4..0c100baa9 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/JsonProperties.java
@@ -24,6 +24,7 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Queue;
+import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -334,7 +335,7 @@ public abstract class JsonProperties {
}
boolean propsEqual(JsonProperties np) {
- return props.equals(np.props);
+ return Objects.equals(props, np.props);
}
public boolean hasProps() {
diff --git a/lang/java/avro/src/main/java/org/apache/avro/Protocol.java
b/lang/java/avro/src/main/java/org/apache/avro/Protocol.java
index f99df533b..e837e6008 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/Protocol.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/Protocol.java
@@ -39,6 +39,7 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
/**
@@ -390,13 +391,14 @@ public class Protocol extends JsonProperties {
if (!(o instanceof Protocol))
return false;
Protocol that = (Protocol) o;
- return this.name.equals(that.name) &&
this.namespace.equals(that.namespace) && this.types.equals(that.types)
- && this.messages.equals(that.messages) && this.propsEqual(that);
+ return Objects.equals(this.name, that.name) &&
Objects.equals(this.namespace, that.namespace)
+ && Objects.equals(this.types, that.types) &&
Objects.equals(this.messages, that.messages)
+ && this.propsEqual(that);
}
@Override
public int hashCode() {
- return name.hashCode() + namespace.hashCode() + types.hashCode() +
messages.hashCode() + propsHashCode();
+ return 31 * Objects.hash(name, namespace, types, messages) +
propsHashCode();
}
/** Render this as <a href="https://json.org/">JSON</a>. */