Codereview request 7067045: replaceAll("\u20ac", "$"); causses java.lang.StringIndexOutOfBoundsExceptio

Xueming Shen xueming.shen at oracle.com
Tue Apr 17 19:35:16 UTC 2012


Hi Paul, I'm fine with the more detailed the exception messages.  Though 
personally I don't
see the necessity of using String.format(...) for those String and 
integer arguments, a simple
concatenation might be good enough here. Are you interested to start 
from filing a new bug
on this issue and then go through the whole process to update these 
exception message?

Thanks!
-Sherman

On 04/17/2012 10:02 AM, Paul Sandoz wrote:
> Hi Sherman,
>
> Here is an example:
>
> http://cr.openjdk.java.net/~psandoz/errors-in-matcher/webrev.0/ 
> <http://cr.openjdk.java.net/%7Epsandoz/errors-in-matcher/webrev.0/>
>
> I am not sure what, if any, are the JDK guidelines for stuffing 
> information in exception messages.
>
> Paul.
>
> On Apr 16, 2012, at 10:24 AM, Paul Sandoz wrote:
>
>> Hi Sherman,
>>
>> IMHO it is worth spending a little time getting the exception 
>> messages a little more accurate. I have spent too many a time staring 
>> at such messages wondering what the heck is going on :-)
>>
>> e.g.
>>
>> Syntax error parsing replacement string: escaped literal character is 
>> missing at the end of the string.
>>
>> Syntax error parsing replacement string: group reference is missing 
>> at the end of the string.
>>
>>
>> Since i am proposing this i will send a patch. It will help me get 
>> familiar with the whole OpenJDK process.
>>
>> Pau;.
>>
>> On Apr 12, 2012, at 10:09 PM, Xueming Shen wrote:
>>
>>> Hi
>>>
>>> Please help review the change for 7067045.
>>>
>>> The change is to throw a more meaningful IAE instead of the 
>>> StringIndexoutputOfBoundsException
>>> if backslash or $ is the last character in the replacement string. 
>>> (as the API indicated, the backslash
>>> and $ character in String's regex replacement and Matcher class have 
>>> special meanings, backslash
>>> is for literal character escape and the $ is the capturing group 
>>> reference, which needs a group index).
>>>
>>> http://cr.openjdk.java.net/~sherman/7067045/webrev/ 
>>> <http://cr.openjdk.java.net/%7Esherman/7067045/webrev/>
>>>
>>> Thanks,
>>> -Sherman
>>
>




More information about the core-libs-dev mailing list