On 05/31/13 10:10, Alan Bateman wrote:
Assuming Doug and Mike are okay with this then I suggest we try to get it into
jdk8/tl soon so that it has a few days bake time before Lana grabs the changes
from jdk8/tl for b94. I think Mike is going to sponsor this.
On cross-checking with ConcurrentHashMap, all looks OK except that
it should include a fix for a problem introduced once when changing
comparison orders and not picked up until recently retesting CHM. (sorry.)
Here's a diff against webrev 0.3
*** HashMap.java~ Fri May 31 13:58:38 2013
--- HashMap.java Sat Jun 1 12:52:11 2013
***************
*** 490,499 ****
(dir = ((Comparable<Object>)k).compareTo(pk)) == 0)
{ // assert pk != null;
TreeNode r, pl, pr; // check both sides
! if ((pr = p.right) != null && h >= pr.entry.hash &&
(r = getTreeNode(h, k, pr, cc)) != null)
return r;
! else if ((pl = p.left) != null && h <= pl.entry.hash)
dir = -1;
else // nothing there
break;
--- 490,499 ----
(dir = ((Comparable<Object>)k).compareTo(pk)) == 0)
{ // assert pk != null;
TreeNode r, pl, pr; // check both sides
! if ((pr = p.right) != null
(r = getTreeNode(h, k, pr, cc)) != null)
return r;
! else if ((pl = p.left) != null)
dir = -1;
else // nothing there
break;
***************
*** 534,540 ****
else if (cc == null || comparableClassFor(pk) != cc ||
(dir = ((Comparable<Object>)k).compareTo(pk)) == 0)
{ TreeNode r, pr;
! if ((pr = p.right) != null && h >= pr.entry.hash &&
(r = getTreeNode(h, k, pr, cc)) != null)
return r;
else // continue left
--- 534,540 ----
else if (cc == null || comparableClassFor(pk) != cc ||
(dir = ((Comparable<Object>)k).compareTo(pk)) == 0)
{ TreeNode r, pr;
! if ((pr = p.right) != null &&
(r = getTreeNode(h, k, pr, cc)) != null)
return r;
else // continue left