This is an automated email from the ASF dual-hosted git repository.
wuchunfu pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new cc448d98c [Improve] [Connector-V2] Bad smell
ToArrayCallWithZeroLengthArrayArgument: (#3577)
cc448d98c is described below
commit cc448d98c4d2f346ed143b3df67fa84a359e0e67
Author: MartinWitt <[email protected]>
AuthorDate: Sat Nov 26 05:37:27 2022 +0100
[Improve] [Connector-V2] Bad smell ToArrayCallWithZeroLengthArrayArgument:
(#3577)
- ToArrayCallWithZeroLengthArrayArgument
The performance of the empty array version is the same, and sometimes even
better, compared
to the pre-sized version. Also, passing a pre-sized array is dangerous for
a concurrent or
synchronized collection as a data race is possible between the
<code>size</code> and <code>toArray</code>
calls. This may result in extra <code>null</code>s at the end of the array
if the collection was concurrently
shrunk during the operation.</p>
See https://shipilev.net/blog/2016/arrays-wisdom-ancients/ for more details.
---
.../connectors/seatunnel/elasticsearch/source/ElasticsearchSource.java | 2 +-
.../apache/seatunnel/connectors/seatunnel/kudu/source/KuduSource.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/source/ElasticsearchSource.java
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/source/ElasticsearchSource.java
index 9339828c8..d3fb36483 100644
---
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/source/ElasticsearchSource.java
+++
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/source/ElasticsearchSource.java
@@ -71,7 +71,7 @@ public class ElasticsearchSource implements
SeaTunnelSource<SeaTunnelRow, Elasti
SeaTunnelDataType seaTunnelDataType =
EsTypeMappingSeaTunnelType.getSeaTunnelDataType(esType);
fieldTypes[i] = seaTunnelDataType;
}
- rowTypeInfo = new SeaTunnelRowType(source.toArray(new
String[source.size()]), fieldTypes);
+ rowTypeInfo = new SeaTunnelRowType(source.toArray(new String[0]),
fieldTypes);
}
}
diff --git
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/source/KuduSource.java
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/source/KuduSource.java
index 6098e89b1..fe76f2e5f 100644
---
a/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/source/KuduSource.java
+++
b/seatunnel-connectors-v2/connector-kudu/src/main/java/org/apache/seatunnel/connectors/seatunnel/kudu/source/KuduSource.java
@@ -186,6 +186,6 @@ public class KuduSource implements
SeaTunnelSource<SeaTunnelRow, KuduSourceSplit
throw new
KuduConnectorException(CommonErrorCode.TABLE_SCHEMA_GET_FAILED,
String.format("PluginName: %s, PluginType: %s, Message: %s",
"Kudu", PluginType.SOURCE, ExceptionUtils.getMessage(e)));
}
- return new SeaTunnelRowType(fieldNames.toArray(new
String[fieldNames.size()]), seaTunnelDataTypes.toArray(new
SeaTunnelDataType<?>[seaTunnelDataTypes.size()]));
+ return new SeaTunnelRowType(fieldNames.toArray(new String[0]),
seaTunnelDataTypes.toArray(new SeaTunnelDataType<?>[0]));
}
}