This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch release-1.14
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-1.14 by this push:
new 0c061dafc83 [hotfix][table-runtime] Fix ArrayDataSerializer null
fields writing (#19254)
0c061dafc83 is described below
commit 0c061dafc83dadf7d4d13da4538284e0579e2593
Author: Sergey Nuyanzin <[email protected]>
AuthorDate: Fri Jun 10 17:57:21 2022 +0200
[hotfix][table-runtime] Fix ArrayDataSerializer null fields writing (#19254)
---
.../apache/flink/table/runtime/typeutils/ArrayDataSerializer.java | 4 +++-
.../flink/table/runtime/typeutils/ArrayDataSerializerTest.java | 5 ++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git
a/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/typeutils/ArrayDataSerializer.java
b/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/typeutils/ArrayDataSerializer.java
index 10a15be6241..673db54dbe2 100644
---
a/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/typeutils/ArrayDataSerializer.java
+++
b/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/typeutils/ArrayDataSerializer.java
@@ -127,7 +127,9 @@ public class ArrayDataSerializer extends
TypeSerializer<ArrayData> {
LogicalTypeUtils.toInternalConversionClass(eleType),
array.size());
for (int i = 0; i < array.size(); i++) {
- newArray[i] = eleSer.copy(objectArray[i]);
+ if (objectArray[i] != null) {
+ newArray[i] = eleSer.copy(objectArray[i]);
+ }
}
return new GenericArrayData(newArray);
}
diff --git
a/flink-table/flink-table-runtime/src/test/java/org/apache/flink/table/runtime/typeutils/ArrayDataSerializerTest.java
b/flink-table/flink-table-runtime/src/test/java/org/apache/flink/table/runtime/typeutils/ArrayDataSerializerTest.java
index baed23706dc..1389873398f 100644
---
a/flink-table/flink-table-runtime/src/test/java/org/apache/flink/table/runtime/typeutils/ArrayDataSerializerTest.java
+++
b/flink-table/flink-table-runtime/src/test/java/org/apache/flink/table/runtime/typeutils/ArrayDataSerializerTest.java
@@ -80,7 +80,10 @@ public class ArrayDataSerializerTest extends
SerializerTestBase<ArrayData> {
@Override
protected ArrayData[] getTestData() {
return new ArrayData[] {
- new GenericArrayData(new StringData[]
{StringData.fromString("11")}),
+ new GenericArrayData(
+ new StringData[] {
+ StringData.fromString("11"), null,
StringData.fromString("ke")
+ }),
createArray("11", "haa"),
createArray("11", "haa", "ke"),
createArray("11", "haa", "ke"),