My first webrev review request: 6850337 Hasher.java interprets given option value badly

Xueming Shen Xueming.Shen at Sun.COM
Mon Jul 20 18:18:02 UTC 2009


Ulf,

I believe the "mb" is designed to be "exclusive". I'm the one to blame, 
I changed the
default mb value from 10 to 11 for my 1.6 Console work, which moved all OEM
charsets from the "extended" into the "standard" therefor required a 
bigger default
value, but I FORGOT to update the help message as well. My bad. I guess the
better fix for this one is to update the err.println(...). I will be the 
sponsor if you still
want to "fix" this one.

Sherman

btw,
(1) The bugid# which I updated the mb from 10 to 11 is #6349456.
(2) So far the "convention" is to put the contributor name into the hg 
commit message not
the source file.

Ulf Zibis wrote:
>
>
>> Are you sure this is not done by design and that mb is not in fact
>> meant to be an exclusive rather than inclusive bound?
>>   
>
> Option usage of Hasher.java says:
> "    -md depth    max chain depth (default 3)"
> "    -mb bits     max index bits (lg of table size, default 10)"
> In case of setting -md to x the max chain depth properly results in x, 
> but ...
> in case of setting -mb to x the max lg of table size inproperly 
> results in x-1 bits, as you can see in -verbose output of the hasher.
>
> To ensure, that the default value is processed as it would be 10, 
> variable maxBits is pre-set to 11, to "workaround" the bug.
> When fixing this bug, any usage of this option should be corrected to 
> x-1 to ensure identical results.
>
> I don't think the different boundary behaviour of -md and -mb is done 
> by design. Maybe processing of -md has been wrong too in first time 
> and was corrected, but correction for -mb was overseen, as never used.
>
> Maybe you could have a short call to the author Mark Reynolds to 
> ensure this. Possibly he also has knowledge of other usage than in 
> genCharsetProvider.sh.
>
>> Have you checked that the OpenJDK can still be built with this change 
>> in place?
>>   
>
> I have scanned over
> - hg.openjdk.java.net/jdk7/tl/jdk/make
> - hg.openjdk.java.net/jdk7/tl/jdk/src
> - hg.openjdk.java.net/jdk7/tl/jdk/test
>
> The only usage of Hasher.java I've found in:
> - hg.openjdk.java.net/jdk7/tl/jdk/make/java/nio/genCharsetProvider.sh
>
> In this case, the option -mb  is not used. I assume, this is the 
> reason, why nobody has experienced this bug before.
>
> I have *not* scanned over
> - hg.openjdk.java.net/jdk7/tl/hotspot .../langtools etc.
> as I don't have a hg clone of them.
>
> Maybe I should have done this, but I think, it's anyway good that 
> experienced SUN engineer would do that scan too, and I guess, you have 
> better tools to do that.
>
> -Ulf
>
>




More information about the core-libs-dev mailing list