I updated the webrev and replaced TreeBinSplitBackToEntries.java with:

  
http://cr.openjdk.java.net/~psandoz/tl/JDK-8023463-Linked-HashMap-bin-and-tree/webrev/test/java/util/Map/MapBinToFromTreeTest.java.html

Paul.

On Aug 21, 2013, at 4:00 PM, Paul Sandoz <paul.san...@oracle.com> wrote:

> I updated the webrev to adjust some tests that a JPRT run reporting as 
> failing:
> 
> FAILED: java/util/Map/CheckRandomHashSeed.java
> FAILED: java/util/Map/TreeBinSplitBackToEntries.java
> 
> The test TreeBinSplitBackToEntries needs to be revamped as the conditions 
> under which bins are converted to trees and vice versa are no longer hold.
> 
> Conversion from a bin to a tree will not happen unless the table size is >= 
> 64 (MIN_TREEIFY_CAPACITY) and the number of entries in a bin before adding is 
> >= 7 (TREEIFY_THRESHOLD - 1). 
> 
> Conversion back from a tree to a bin occurs if the number of entries in a 
> tree is <= 6 (UNTREEIFY_THRESHOLD), which AFAICT can occur when the table is 
> resized, but can also occur under remove when the tree size is somewhere 
> between 2 and 6. So we should try and create some tests to trigger this 
> conversion too.
> 
> Plus tests for traversal when it is known the table contains trees (it is 
> tempting, for convenience, to add instances to Spliterator traversing tests 
> but that is probably overkill)
> 
> Paul.
> 
> On Aug 21, 2013, at 2:25 PM, Paul Sandoz <paul.san...@oracle.com> wrote:
> 
>> Hi,
>> 
>> Here are Doug's Linked/HashMap changes, discussed in a previous thread, as a 
>> webrev:
>> 
>> http://cr.openjdk.java.net/~psandoz/tl/JDK-8023463-Linked-HashMap-bin-and-tree/webrev/
>> 
>> I also added some tests related to characteristics associated with fixing 
>> another bug.
>> 
>> Looking at the diffs will be tricky given there are so many changes.
>> 
>> 
>> I fixed unchecked warnings in LinkedHashMap, but have not done so for 
>> HashMap, where there are many more casts from Node to TreeNode. One way to 
>> solve that is with a static method:
>> 
>>   @SuppressWarnings("unchecked")
>>   static <K, V> TreeNode<K, V> asTreeNode(Node<K, V> n) {
>>       return (TreeNode<K, V>) n;
>>   }
>> 
>> but i dunno what the performance implications are. Perhaps it's best to 
>> simply stuff @SuppressWarnings on methods of TreeNode rather than trying to 
>> modify code just for the sake of reducing the scope.
>> 
>> 
>> A JPRT job has been kicked off.
>> 
>> I recommend when this code goes in we look closely at code coverage results 
>> to see if we are missing areas testing tree functionality and update/add new 
>> tests accordingly.
>> 
>> Paul.
>> 
> 

Reply via email to