cadonna commented on code in PR #15438:
URL: https://github.com/apache/kafka/pull/15438#discussion_r1507320914


##########
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ApplicationEvent.java:
##########
@@ -32,36 +36,42 @@ public enum Type {
 
     private final Type type;
 
+    /**
+     * This identifies a particular event. It is used to disambiguate events 
via {@link #hashCode()} and
+     * {@link #equals(Object)} and can be used in log messages when debugging.
+     */
+    private final Uuid id;
+
     protected ApplicationEvent(Type type) {
         this.type = Objects.requireNonNull(type);
+        this.id = Uuid.randomUuid();
     }
 
     public Type type() {
         return type;
     }
 
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        ApplicationEvent that = (ApplicationEvent) o;
+    public Uuid id() {
+        return id;
+    }
 
-        return type == that.type;
+    @Override
+    public final boolean equals(Object o) {
+        return this == o;
     }
 
     @Override
-    public int hashCode() {
-        return type.hashCode();
+    public final int hashCode() {
+        return Objects.hash(type, id);
     }
 
     protected String toStringBase() {
-        return "type=" + type;
+        return "type=" + type + ", id=" + id;

Review Comment:
   I was more on the performance reason side, but I also assumed that the 
performance benefits are negligible. I proposed it more to be on the safe side, 
thus the "nit" prefix. I am fine either way. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to