aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorJoseph E. Gonzalez <joseph.e.gonzalez@gmail.com>2013-11-18 12:22:41 -0800
committerJoseph E. Gonzalez <joseph.e.gonzalez@gmail.com>2013-11-19 21:03:00 -0800
commitb12b2ccde8683a091ed2ac15113c5609184c95e6 (patch)
tree701fb55ec962d1c83111ad4bd8d478941fb67ea0 /core
parent74ade9e0350b0b4afcc5c0e76035d6f2d6fe6a47 (diff)
downloadspark-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.scala3
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)) {