2011/6/6 Mark Thomas <ma...@apache.org>:
> On 05/06/2011 17:47, Rainer Jung wrote:
>>>>> +            for (int i = valueL - 1; i > colonPos; i--) {
>>>>> +                int charValue = HexUtils.getDec(valueB[i + valueS]);
>>>>
>>>> Any idea, why hex digits (including a-f, A-F) are allowed in port numbers?

Probably that was just to do not invent a separate method.
Another way to fix this would be to replace the next line
                if (charValue == -1) {
with
                if (charValue == -1 || charValue > 9) {

>>>> I know you only moved that code, but it reminded me of an observation I
>>>> made long ago and forgot.
>>>
>>> I can't think of any good reason. Happy to limit that to the digits 0-9.
>>
>> Would you prefer renaming HexUtils to NumberUtils (or similar) and havin
>> getDecFromHex() and getDecFromDec() there, or a new class similar to
>> HexUtils called DecUtils?
>
> Or we could just use Ascii.parseInt(char[], int, int)
>
> Just testing a patch now...

Regarding the patch,
http://svn.apache.org/viewvc?rev=1132487&view=rev

Code looks OK but my small concern is that the invalid case is handled
with a NumberFormatException here and it can be triggered by an
external request. I have not tested it here, but general notion is
that exception creation is expensive.

Maybe we can use a cached copy of NumberFormatException, like
o.a.naming.resources.ImmutableNameNotFoundException


By the way, there are two HexUtils classes in trunk. Do we need both?

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to