private static boolean overflowInParse(long current, int digit, int radix)
    {
        if (current >= 0)
        {
            if (current < maxValueDivs[radix])
            {
                return false;
            }
            if (current > maxValueDivs[radix])
            {
                return true;
            }
            // current == maxValueDivs[radix]
            return (digit > maxValueMods[radix]);
        }

        // current < 0: high bit is set
        return true;
    }
Returns true if (current * radix) + digit is a number too large to be represented by an unsigned long. This is
useful for detecting overflow while parsing a string representation of a number. Does not verify whether supplied
radix is valid, passing an invalid radix will give undefined results or an ArrayIndexOutOfBoundsException.
protostuff-api/src/main/java/io/protostuff/UnsignedNumberUtil.java