RFR [9] 8006627: UUID to/from String performance should be improved by reducing object allocations
Claes Redestad
claes.redestad at oracle.com
Mon Jul 21 18:32:18 UTC 2014
Hi,
new webrev which ensures we always throw some kind of IAE for invalid
inputs and adds a few tests to cover this behavior:
http://cr.openjdk.java.net/~redestad/8006627/webrev.4
/Claes
On 2014-07-21 20:05, Claes Redestad wrote:
> Hi,
>
> IIOB is invalid to throw here, so I'll fix that.
> NumberFormatException is a IllegalArgumentException, so I think it's a
> gray area if the dash4 + 1 < name.length()-check is needed.
>
> I sincerely hope keeping error messages as-is isn't required, though.
>
> /Claes
>
> On 2014-07-21 18:51, Peter Levart wrote:
>> Hi Claes,
>>
>> Invalid inputs to UUID.fromString() behave a little different than
>> before. IllegalArgumentException is not thrown for the following inputs:
>>
>> For example:
>>
>> "0": IllegalArgumentException: Invalid UUID string: 0 (before patch)
>> "0": IndexOutOfBoundsException (after patch)
>>
>> "-0": IllegalArgumentException: Invalid UUID string: -0 (before patch)
>> "-0": NumberFormatException (after patch)
>>
>> "0-0-0-0-": IllegalArgumentException: Invalid UUID string: 0-0-0-0-
>> (before patch)
>> "0-0-0-0-": NumberFormatException (after patch)
>>
>> The following input (and similar) do throw NumberFormatException as
>> before, but messages are a little different. That's OK, I suppose.
>>
>> "0-0-0-x-0": NumberFormatException: For input string: "x" (before patch)
>> "0-0-0-x-0": NumberFormatException: Error at index 1 in: "x" (after
>> patch)
>>
>> "0-0-0--0": NumberFormatException: For input string: "" (before patch)
>> "0-0-0--0": NumberFormatException: (after patch)
>>
>>
>> The 1st 3 examples could be fixed by checking that dash1,2,3,4 are
>> all > 0 and that dash4 + 1 < name.length()
>>
>>
>> Regards, Peter
>>
>>
>> On 07/21/2014 01:41 PM, Claes Redestad wrote:
>>> On 07/19/2014 02:59 PM, Ivan Gerasimov wrote:
>>>> This looks just beautiful!
>>>
>>> Thanks!
>>>
>>>> But why do you need the digits() function at all?
>>>> In my opinion, using formatUnsignedLong directly would be no less
>>>> clearer.
>>>
>>> Sure!
>>>
>>> http://cr.openjdk.java.net/~redestad/8006627/webrev.2/
>>>
>>> Small improvement with client compiler; no measurable change with
>>> tiered.
>>>
>>> /Claes
>>>
>>>>
>>>> Sincerely yours,
>>>> Ivan
>>>>
>>>> On 19.07.2014 8:59, Claes Redestad wrote:
>>>>> Hi,
>>>>>
>>>>> after recent changes, this patch has been revisited and improved
>>>>> slightly, primarily simplifying and speeding up the toString
>>>>> method slightly more:
>>>>>
>>>>> http://cr.openjdk.java.net/~redestad/8006627/webrev.1/
>>>>>
>>>>> /Claes
>>>>>
>>>>> On 2014-06-15 00:41, Claes Redestad wrote:
>>>>>> Hi,
>>>>>>
>>>>>> please review this patch to improve UUID performance, originally
>>>>>> proposed by Steven Schlansker, rebased to use the allocation-free
>>>>>> methods added in https://bugs.openjdk.java.net/browse/JDK-8041972
>>>>>>
>>>>>> Webrev: http://cr.openjdk.java.net/~redestad/8006627/webrev.0/
>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8006627
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>> /Claes
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the core-libs-dev
mailing list