From d947cb97789acd04b7f02410490fa3f91c2a7bca Mon Sep 17 00:00:00 2001
From: Matei Zaharia <matei@eecs.berkeley.edu>
Date: Wed, 3 Nov 2010 22:52:41 -0700
Subject: [PATCH] Fixed a bug with negative hashcodes

---
 src/scala/spark/DfsShuffle.scala | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/scala/spark/DfsShuffle.scala b/src/scala/spark/DfsShuffle.scala
index a100ddf05b..e751e1bd75 100644
--- a/src/scala/spark/DfsShuffle.scala
+++ b/src/scala/spark/DfsShuffle.scala
@@ -84,7 +84,10 @@ extends Logging
         new ObjectOutputStream(fs.create(path, true))
       }).toArray
       for ((k, c) <- combiners) {
-        val bucket = k.hashCode % numOutputSplits
+        var bucket = k.hashCode % numOutputSplits
+        if (bucket < 0) {
+          bucket += numOutputSplits
+        }
         outputStreams(bucket).writeObject((k, c))
       }
       outputStreams.foreach(_.close())
-- 
GitLab