diff options
author | Joseph E. Gonzalez <joseph.e.gonzalez@gmail.com> | 2013-11-18 12:22:41 -0800 |
---|---|---|
committer | Joseph E. Gonzalez <joseph.e.gonzalez@gmail.com> | 2013-11-19 21:03:00 -0800 |
commit | b12b2ccde8683a091ed2ac15113c5609184c95e6 (patch) | |
tree | 701fb55ec962d1c83111ad4bd8d478941fb67ea0 /core | |
parent | 74ade9e0350b0b4afcc5c0e76035d6f2d6fe6a47 (diff) | |
download | spark-b12b2ccde8683a091ed2ac15113c5609184c95e6.tar.gz spark-b12b2ccde8683a091ed2ac15113c5609184c95e6.tar.bz2 spark-b12b2ccde8683a091ed2ac15113c5609184c95e6.zip |
Addressing bug in open hash set where getPos on a full open hash set could loop forever.
Diffstat (limited to 'core')
-rw-r--r-- | core/src/main/scala/org/apache/spark/util/collection/OpenHashSet.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/core/src/main/scala/org/apache/spark/util/collection/OpenHashSet.scala b/core/src/main/scala/org/apache/spark/util/collection/OpenHashSet.scala index e86d7ef767..84583bf20f 100644 --- a/core/src/main/scala/org/apache/spark/util/collection/OpenHashSet.scala +++ b/core/src/main/scala/org/apache/spark/util/collection/OpenHashSet.scala @@ -139,7 +139,8 @@ class OpenHashSet[@specialized(Long, Int) T: ClassManifest]( def getPos(k: T): Int = { var pos = hashcode(hasher.hash(k)) & _mask var i = 1 - while (true) { + val maxProbe = _data.size + while (i < maxProbe) { if (!_bitset.get(pos)) { return INVALID_POS } else if (k == _data(pos)) { |