kz930 opened a new issue, #7548: URL: https://github.com/apache/texera/issues/7548
### What happened? Substring Search and Unnest String throw a NullPointerException when the column they are configured on is empty in any row. Both read the field and call `toString` on it with no null check: `SubstringSearchOpExec.scala:33` is `tuple.getField(desc.attribute).toString`, and `UnnestStringOpExec.scala:33` does the same inside its `split` call. An empty value is ordinary input here. A blank CSV cell arrives as null, since univocity returns null for an empty field and `AttributeTypeUtils.parseField` passes it through by design, its first line being `if (field == null) return null`. The execution then pauses on that row, with the exception shown in the operator's console. Expected: a row with an empty value either passes through, or is skipped, or fails with a message naming the column. A NullPointerException is not one of those. ### How to reproduce? Upload a CSV with a blank cell: ``` id,text 1,hello world 2, 3,goodbye world ``` Build `CSV File Scan` to `Substring Search`, point Substring Search at `text` with substring `world`, and run. The execution pauses on row 2 and the operator's console shows the NullPointerException. Repeat with `Unnest String` on the same column. ### Version/Branch 1.3.0-incubating-SNAPSHOT (main) ### Relevant log output ```shell [WARN] [WF35-SubstringSearch-c996db-main-0] [DataProcessor] [DP-thread] - Cannot invoke "Object.toString()" because the return value of "org.apache.texera.amber.core.tuple.Tuple.getField(String)" is null org.apache.texera.amber.operator.substringSearch.SubstringSearchOpExec.findSubstring(SubstringSearchOpExec.scala:33) org.apache.texera.amber.operator.filter.FilterOpExec.processTuple(FilterOpExec.scala:33) org.apache.texera.amber.engine.architecture.worker.DataProcessor.processInputTuple(DataProcessor.scala:111) org.apache.texera.amber.engine.architecture.worker.DPThread.$anonfun$runDPThreadMainLogic$2(DPThread.scala:211) ``` -- 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]
