Avoid possible comparison contract violation (#9883)
Motivation: The current implementation causes IllegalArgumetExceptions to be thrown on Java 11. The current implementation would violate comparison contract for two cookies C1 and C2 with same path length, since C1 < C2 and C2 < C1. Returning 0 (equality) does not since C1 == C2 and C2 == C1. See #9881 Modification: Return equality instead of less than on same path length. Result: Fixes #9881.
This commit is contained in:
parent
95b8db0633
commit
f995426a59
@ -107,9 +107,9 @@ public final class ClientCookieEncoder extends CookieEncoder {
|
||||
if (diff != 0) {
|
||||
return diff;
|
||||
}
|
||||
// Rely on Java's sort stability to retain creation order in cases where
|
||||
// Rely on Arrays.sort's stability to retain creation order in cases where
|
||||
// cookies have same path length.
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user