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
0f42eb1ceb
commit
ae313513dd
@ -106,9 +106,9 @@ public final class ClientCookieEncoder extends CookieEncoder {
|
|||||||
if (diff != 0) {
|
if (diff != 0) {
|
||||||
return diff;
|
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.
|
// cookies have same path length.
|
||||||
return -1;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user