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);

Reply via email to