Copilot commented on code in PR #9496:
URL: https://github.com/apache/seatunnel/pull/9496#discussion_r2178853905


##########
seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/sink/HudiSinkFactory.java:
##########
@@ -115,6 +115,11 @@ public TableSink createSink(TableSinkFactoryContext 
context) {
                 .put(
                         HudiSinkOptions.CDC_ENABLED.key(),
                         String.valueOf(hudiTableConfig.isCdcEnabled()));
+
+        catalogTable
+                .getOptions()
+                .put(HudiSinkOptions.PRECOMBINE_FIELD.key(), 
hudiTableConfig.getPreCombineField());
+

Review Comment:
   Guard against a null or empty pre-combine field here to avoid inserting a 
null value into the options map, which could lead to a runtime NPE. For 
example, only call `put(...)` when `hudiTableConfig.getPreCombineField()` is 
non-null and non-empty.
   ```suggestion
           if (StringUtils.isNoneEmpty(hudiTableConfig.getPreCombineField())) {
               catalogTable
                       .getOptions()
                       .put(HudiSinkOptions.PRECOMBINE_FIELD.key(), 
hudiTableConfig.getPreCombineField());
           }
   ```



##########
seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/catalog/HudiCatalog.java:
##########
@@ -233,6 +234,7 @@ public void createTable(TablePath tablePath, CatalogTable 
table, boolean ignoreI
                         .setPayloadClassName(HoodieAvroPayload.class.getName())
                         .setCDCEnabled(
                                 
Boolean.parseBoolean(table.getOptions().get(CDC_ENABLED.key())))
+                        
.setPreCombineField(table.getOptions().get(PRECOMBINE_FIELD.key()))

Review Comment:
   If `PRECOMBINE_FIELD` is missing or null in the options, calling 
`setPreCombineField(null)` could lead to an unexpected runtime error in the 
Hudi builder. Consider retrieving the option with a default or guarding the 
call.



##########
seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/config/HudiTableConfig.java:
##########
@@ -125,6 +129,7 @@ public static List<HudiTableConfig> of(ReadonlyConfig 
connectorConfig) {
                             .opType(connectorConfig.get(OP_TYPE))
                             
.recordKeyFields(connectorConfig.get(RECORD_KEY_FIELDS))
                             
.partitionFields(connectorConfig.get(PARTITION_FIELDS))
+                            
.preCombineField(connectorConfig.get(PRECOMBINE_FIELD))

Review Comment:
   Using `connectorConfig.get(PRECOMBINE_FIELD)` without a default will throw 
if the option is not provided. If this field is meant to be optional, consider 
using `getOptional(...)` or supplying a default value before mapping to avoid a 
configuration error.
   ```suggestion
                               
.preCombineField(connectorConfig.getOptional(PRECOMBINE_FIELD).orElse(null))
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to