You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ra...@apache.org on 2019/01/30 10:39:23 UTC
[carbondata] 19/27: [CARBONDATA-3269] Fix
ArrayIndexOutOfBoundsException of Range_Column when using KryoSerializer
This is an automated email from the ASF dual-hosted git repository.
ravipesala pushed a commit to branch branch-1.5
in repository https://gitbox.apache.org/repos/asf/carbondata.git
commit 7e677a0bec0839bf23f09f47f27cd75ad5c9ef19
Author: QiangCai <qi...@qq.com>
AuthorDate: Fri Jan 25 14:29:55 2019 +0800
[CARBONDATA-3269] Fix ArrayIndexOutOfBoundsException of Range_Column when using KryoSerializer
Fix ArrayIndexOutOfBoundsException of Range_Column when using KryoSerializer
This closes #3100
---
.../src/main/scala/org/apache/spark/DataSkewRangePartitioner.scala | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/integration/spark-common/src/main/scala/org/apache/spark/DataSkewRangePartitioner.scala b/integration/spark-common/src/main/scala/org/apache/spark/DataSkewRangePartitioner.scala
index 5f5c376..12285d3 100644
--- a/integration/spark-common/src/main/scala/org/apache/spark/DataSkewRangePartitioner.scala
+++ b/integration/spark-common/src/main/scala/org/apache/spark/DataSkewRangePartitioner.scala
@@ -202,7 +202,7 @@ class DataSkewRangePartitioner[K: Ordering : ClassTag, V](
}
}
- private val skewPartitions: Int = if (skewCount == 0) {
+ private var skewPartitions: Int = if (skewCount == 0) {
0
} else {
skewWeights.map(_ - 1).sum
@@ -307,6 +307,7 @@ class DataSkewRangePartitioner[K: Ordering : ClassTag, V](
case js: JavaSerializer => out.defaultWriteObject()
case _ =>
out.writeInt(skewCount)
+ out.writeInt(skewPartitions)
if (skewCount > 0) {
out.writeObject(skewIndexes)
out.writeObject(skewWeights)
@@ -332,6 +333,7 @@ class DataSkewRangePartitioner[K: Ordering : ClassTag, V](
case js: JavaSerializer => in.defaultReadObject()
case _ =>
skewCount = in.readInt()
+ skewPartitions = in.readInt()
if (skewCount > 0) {
skewIndexes = in.readObject().asInstanceOf[Array[Int]]
skewWeights = in.readObject().asInstanceOf[Array[Int]]