# HG changeset patch # User snazarki # Date 1621517175 -10800 # Node ID 6a07e2cb5bdb7a4983ee89e7ed715435c722d9b3 # Parent 821ac4be0e8fdcebffd05b88fe04c952e11e5b9f 8206243: java -XshowSettings fails if memory.limit_in_bytes overflows LONG.max Reviewed-by: sgehwolf diff -r 821ac4be0e8f -r 6a07e2cb5bdb src/linux/classes/jdk/internal/platform/cgroupv1/SubSystem.java --- a/src/linux/classes/jdk/internal/platform/cgroupv1/SubSystem.java Wed May 27 09:46:40 2020 -0700 +++ b/src/linux/classes/jdk/internal/platform/cgroupv1/SubSystem.java Thu May 20 16:26:15 2021 +0300 @@ -27,6 +27,7 @@ import java.io.BufferedReader; import java.io.IOException; +import java.math.BigInteger; import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; @@ -156,7 +157,18 @@ public static long convertStringToLong(String strval) { if (strval == null) return 0L; - long retval = Long.parseLong(strval); + long retval = 0; + + try { + retval = Long.parseLong(strval); + } catch (NumberFormatException e) { + // For some properties (e.g. memory.limit_in_bytes) we may overflow the range of signed long. + // In this case, return Long.max + BigInteger b = new BigInteger(strval); + if (b.compareTo(BigInteger.valueOf(Long.MAX_VALUE)) > 0) { + return Long.MAX_VALUE; + } + } return retval; }