diff --git a/pinot-spi/pom.xml b/pinot-spi/pom.xml
index feb51bceeae..06b616bace7 100644
--- a/pinot-spi/pom.xml
+++ b/pinot-spi/pom.xml
@@ -139,6 +139,11 @@
testng
test
+
+ nl.jqno.equalsverifier
+ equalsverifier
+ test
+
org.reflections
reflections
diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/data/readers/PrimaryKey.java b/pinot-spi/src/main/java/org/apache/pinot/spi/data/readers/PrimaryKey.java
index 27475a3e29d..7b31312ee8c 100644
--- a/pinot-spi/src/main/java/org/apache/pinot/spi/data/readers/PrimaryKey.java
+++ b/pinot-spi/src/main/java/org/apache/pinot/spi/data/readers/PrimaryKey.java
@@ -29,7 +29,7 @@
/**
* The primary key of a record. Note that the value used in the primary key must be single-value.
*/
-public class PrimaryKey {
+public final class PrimaryKey {
private final Object[] _values;
public PrimaryKey(Object[] values) {
diff --git a/pinot-spi/src/test/java/org/apache/pinot/spi/data/readers/PrimaryKeyTest.java b/pinot-spi/src/test/java/org/apache/pinot/spi/data/readers/PrimaryKeyTest.java
index e92a3e2ed5b..adaf8f9a85b 100644
--- a/pinot-spi/src/test/java/org/apache/pinot/spi/data/readers/PrimaryKeyTest.java
+++ b/pinot-spi/src/test/java/org/apache/pinot/spi/data/readers/PrimaryKeyTest.java
@@ -21,6 +21,7 @@
import java.math.BigDecimal;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
+import nl.jqno.equalsverifier.EqualsVerifier;
import org.apache.pinot.spi.utils.BigDecimalUtils;
import org.apache.pinot.spi.utils.ByteArray;
import org.testng.annotations.Test;
@@ -43,6 +44,11 @@ public void testPrimaryKeyComparison() {
assertNotEquals(left.hashCode(), right.hashCode());
}
+ @Test
+ public void equalsVerifier() {
+ EqualsVerifier.forClass(PrimaryKey.class).verify();
+ }
+
@Test
public void testSerialization() {
byte[] rawbytes = {0xa, 0x2, (byte) 0xff};