FindBugs: Check for Integer.MIN_VALUE before trying to get its absolute value.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a0ef6afe Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a0ef6afe Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a0ef6afe Branch: refs/heads/master Commit: a0ef6afe0e021e849dfa0f3a764e813a71540c8a Parents: 5f9f47d Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Sat Jun 20 16:40:46 2015 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Sat Jun 20 16:40:46 2015 +0300 ---------------------------------------------------------------------- .../main/java/org/apache/wicket/pageStore/DiskDataStore.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/a0ef6afe/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java b/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java index 83be97d..c91890c 100644 --- a/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java +++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java @@ -567,7 +567,12 @@ public class DiskDataStore implements IDataStore */ private String createPathFrom(final String sessionId) { - int hash = Math.abs(sessionId.hashCode()); + int sessionIdHashCode = sessionId.hashCode(); + if (sessionIdHashCode == Integer.MIN_VALUE) { + // Math.abs(MIN_VALUE) == MIN_VALUE, so avoid it + sessionIdHashCode += 1; + } + int hash = Math.abs(sessionIdHashCode); String low = String.valueOf(hash % 9973); String high = String.valueOf((hash / 9973) % 9973); StringBuilder bs = new StringBuilder(sessionId.length() + 10);
