diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/CustomMethodHandlers.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/CustomMethodHandlers.java
index 1f4098a18b07..7ef02206a714 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/CustomMethodHandlers.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/CustomMethodHandlers.java
@@ -245,7 +245,7 @@ class CustomMethodHandlers {
if (arguments.length != 1) return null;
LongRangeSet range = state.getValueFact(arguments[0], DfaFactType.RANGE);
if (range == null || range.isEmpty()) return null;
- return factory.getFactValue(DfaFactType.RANGE, LongRangeSet.range(0, range.max()));
+ return factory.getFactValue(DfaFactType.RANGE, LongRangeSet.range(0, Math.max(0, range.max())));
}
private static Object getConstantValue(DfaMemoryState memoryState, DfaValue value) {
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/LongRangeKnownMethods.java b/java/java-tests/testData/inspection/dataFlow/fixture/LongRangeKnownMethods.java
index 1d820460dd21..ac4f40bcf440 100644
--- a/java/java-tests/testData/inspection/dataFlow/fixture/LongRangeKnownMethods.java
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/LongRangeKnownMethods.java
@@ -319,5 +319,6 @@ public class LongRangeKnownMethods {
long skipped = is.skip(amount);
if (skipped > Integer.MAX_VALUE) {}
if (skipped < 0) {}
+ if (is.skip(-1) == 0) {}
}
}