Java-Thread-Affinity
Java-Thread-Affinity copied to clipboard
fixed NumberFormatException when core 63 was used in -Daffinity.reserved
The fix for using -Daffinity.reserved with more than 64 core (#68) has an issue : to compute the bitset representing that mask, it uses under the hood Long.parseLong(substring, 16) where substring is at most 16 hexadecimal digits. Unfortunately, if the highest bit is set (so if core 63 is selected in the mask), it will cause a NumberFormatException because there is an overflow (because Java types are all signed).
This PR fixes that by splitting the parsing into 2 ints and combining them into a long
Thanks @m-anthony - could I suggest you add a test that would have failed with the old behaviour?
Hi @m-anthony this sounds useful. Could you add a test that would have failed with the old behaviour?