14
14
public class FingerprintChecker {
15
15
16
16
public static EqualityError checkEquality (ResponseFingerprint fingerprint1 , ResponseFingerprint fingerprint2 ) {
17
+ boolean foundRecordContentMismatch = false ;
17
18
if (fingerprint1 .getMessageList ().size () == fingerprint2 .getMessageList ().size ()) {
18
19
for (int i = 0 ; i < fingerprint1 .getMessageList ().size (); i ++) {
19
20
if (!fingerprint1 .getMessageList ().get (i ).toCompactString ()
@@ -36,11 +37,6 @@ public static EqualityError checkEquality(ResponseFingerprint fingerprint1, Resp
36
37
.equals (fingerprint2 .getRecordList ().get (i ).getClass ())) {
37
38
return EqualityError .RECORD_CLASS ;
38
39
}
39
- // This also finds fragmentation issues
40
- if (fingerprint1 .getRecordList ().get (i ).getCompleteRecordBytes ().getValue ().length
41
- != fingerprint2 .getRecordList ().get (i ).getCompleteRecordBytes ().getValue ().length ) {
42
- return EqualityError .RECORD_CONTENT ;
43
- }
44
40
if (fingerprint1 .getRecordList ().get (i ) instanceof Record
45
41
&& fingerprint2 .getRecordList ().get (i ) instanceof Record ) {
46
42
// Comparing Records
@@ -56,6 +52,12 @@ public static EqualityError checkEquality(ResponseFingerprint fingerprint1, Resp
56
52
return EqualityError .RECORD_VERSION ;
57
53
}
58
54
55
+ // This also finds fragmentation issues
56
+ if (fingerprint1 .getRecordList ().get (i ).getCompleteRecordBytes ().getValue ().length
57
+ != fingerprint2 .getRecordList ().get (i ).getCompleteRecordBytes ().getValue ().length ) {
58
+ foundRecordContentMismatch = true ;
59
+ }
60
+
59
61
} else {
60
62
// Comparing BlobRecords
61
63
if (java .util .Arrays .equals (
@@ -69,11 +71,13 @@ public static EqualityError checkEquality(ResponseFingerprint fingerprint1, Resp
69
71
return EqualityError .RECORD_COUNT ;
70
72
}
71
73
}
72
- if (fingerprint1 .getSocketState () == fingerprint2 .getSocketState ()) {
73
- return EqualityError .NONE ;
74
- } else {
74
+ if (fingerprint1 .getSocketState () != fingerprint2 .getSocketState ()) {
75
75
return EqualityError .SOCKET_STATE ;
76
+ } else if (foundRecordContentMismatch ) {
77
+ return EqualityError .RECORD_CONTENT ;
76
78
}
79
+
80
+ return EqualityError .NONE ;
77
81
}
78
82
79
83
private FingerprintChecker () {
0 commit comments