aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorJoseph E. Gonzalez <joseph.e.gonzalez@gmail.com>2013-11-13 10:35:23 -0800
committerJoseph E. Gonzalez <joseph.e.gonzalez@gmail.com>2013-11-13 10:35:23 -0800
commitf0ef75c7a41c417096398d55c08785d1884c4d85 (patch)
tree0c77334110a3296a86fa4d8f0075616509ffec1e /core
parent143c01dbd65af73d5630be8ea818850e9b59a9d4 (diff)
downloadspark-f0ef75c7a41c417096398d55c08785d1884c4d85.tar.gz
spark-f0ef75c7a41c417096398d55c08785d1884c4d85.tar.bz2
spark-f0ef75c7a41c417096398d55c08785d1884c4d85.zip
Addressing bug in BitSet.setUntil(ind) where if invoked with a multiple of 64 could lead to an index out of bounds error.
Diffstat (limited to 'core')
-rw-r--r--core/src/main/scala/org/apache/spark/util/collection/BitSet.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/core/src/main/scala/org/apache/spark/util/collection/BitSet.scala b/core/src/main/scala/org/apache/spark/util/collection/BitSet.scala
index 5e264b48dd..1f794379f7 100644
--- a/core/src/main/scala/org/apache/spark/util/collection/BitSet.scala
+++ b/core/src/main/scala/org/apache/spark/util/collection/BitSet.scala
@@ -41,9 +41,11 @@ class BitSet(numBits: Int) {
val wordIndex = bitIndex >> 6 // divide by 64
var i = 0
while(i < wordIndex) { words(i) = -1; i += 1 }
- // Set the remaining bits
- val mask = ~(-1L << (bitIndex & 0x3f))
- words(wordIndex) |= mask
+ if(wordIndex < words.size) {
+ // Set the remaining bits (note that the mask could still be zero)
+ val mask = ~(-1L << (bitIndex & 0x3f))
+ words(wordIndex) |= mask
+ }
}