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

Ulf Zibis Ulf.Zibis at gmx.de
Mon Jul 20 10:37:48 UTC 2009


Hi Andrew,

thanks for looking at my request. ....

Am 20.07.2009 02:25, Andrew John Hughes schrieb:
> 2009/7/19 Ulf Zibis <Ulf.Zibis at gmx.de>:
>   
>> Martin, Sherman, Neal,
>>
>> do you like to sponsor and review my CR ?
>>
>> Don't worry, it's very simple and small, best for getting familiar with the
>> workflow.
>>
>> See:
>> https://bugs.openjdk.java.net/show_bug.cgi?id=100090
>>
>> Thanks,
>>
>> Ulf
>>
>>
>>
>>
>>     
>
> As this bug is about a tool used during the build, your mail probably
> wants to be directed to the build list.
>   

Good idea, thanks for forwarding.

> 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