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]));
     }
 }

Reply via email to