Bug in Long.parseUnsignedLong
Louis Wasserman
lowasser at google.com
Wed Dec 18 23:52:35 UTC 2013
Derp. Here is the test case:
import java.math.BigInteger;
public class UnsignedLongBug {
public static void main(String[] args) {
try {
String input = "1234567890abcdef1";
System.out.println(Long.parseUnsignedLong(input, 16));
BigInteger maxUnsignedLong =
BigInteger.ONE.shiftLeft(64).subtract(BigInteger.ONE);
BigInteger inputValue = new BigInteger(input, 16);
System.out.println(maxUnsignedLong.compareTo(inputValue));
throw new AssertionError();
} catch (NumberFormatException expected) {
System.out.println("Correct");
}
}
}
On Wed, Dec 18, 2013 at 3:51 PM, Louis Wasserman <lowasser at google.com>wrote:
> The Javadoc of Long.parseUnsignedLong specifies that it should throw a
> NumberFormatException if "the value represented by the string is larger
> than the largest unsigned long, 2^64-1."
>
> This does not appear to be happening:
>
> --
> Louis Wasserman
>
--
Louis Wasserman
More information about the core-libs-dev
mailing list