This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new c3353a0808c [fix](hudi) check requiredFields exists in
splitHudiColumnNames in HudiJniScanner (#51430)
c3353a0808c is described below
commit c3353a0808c0270f38205dd95a5d61701af0538e
Author: Socrates <[email protected]>
AuthorDate: Thu Jun 5 09:54:29 2025 +0800
[fix](hudi) check requiredFields exists in splitHudiColumnNames in
HudiJniScanner (#51430)
### What problem does this PR solve?
### Release note
Check requiredFields exists in splitHudiColumnNames to avoid meaningless
NullPointerException error messages.
---
.../java/org/apache/doris/hudi/HadoopHudiJniScanner.java | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git
a/fe/be-java-extensions/hadoop-hudi-scanner/src/main/java/org/apache/doris/hudi/HadoopHudiJniScanner.java
b/fe/be-java-extensions/hadoop-hudi-scanner/src/main/java/org/apache/doris/hudi/HadoopHudiJniScanner.java
index f163be11aa2..be7e31a115e 100644
---
a/fe/be-java-extensions/hadoop-hudi-scanner/src/main/java/org/apache/doris/hudi/HadoopHudiJniScanner.java
+++
b/fe/be-java-extensions/hadoop-hudi-scanner/src/main/java/org/apache/doris/hudi/HadoopHudiJniScanner.java
@@ -170,9 +170,6 @@ public class HadoopHudiJniScanner extends JniScanner {
for (int i = 0; i < fields.length; i++) {
Object fieldData =
rowInspector.getStructFieldData(rowData, structFields[i]);
columnValue.setRow(fieldData);
- // LOG.info("rows: {}, column: {}, col name: {}, col
type: {}, inspector: {}",
- // numRows, i, types[i].getName(),
types[i].getType().name(),
- // fieldInspectors[i].getTypeName());
columnValue.setField(types[i], fieldInspectors[i]);
appendData(i, columnValue);
}
@@ -211,9 +208,15 @@ public class HadoopHudiJniScanner extends JniScanner {
.boxed()
.collect(Collectors.toMap(i ->
splitHudiColumnNames[i], i -> hudiColumnTypes[i]));
- requiredTypes = Arrays.stream(requiredFields)
- .map(field -> ColumnType.parseType(field,
hudiColNameToType.get(field)))
- .toArray(ColumnType[]::new);
+ requiredTypes = new ColumnType[requiredFields.length];
+ for (int i = 0; i < requiredFields.length; i++) {
+ String requiredField = requiredFields[i];
+ if (!hudiColNameToType.containsKey(requiredField)) {
+ throw new IllegalArgumentException(
+ "Required field " + requiredField + " not found in
Hudi column names: " + splitHudiColumnNames);
+ }
+ requiredTypes[i] = ColumnType.parseType(requiredField,
hudiColNameToType.get(requiredField));
+ }
requiredColumnIds = Arrays.stream(requiredFields)
.mapToInt(hudiColNameToIdx::get)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]