You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Daniel Stieglitz (Jira)" <ji...@apache.org> on 2026/09/17 15:37:00 UTC
[jira] [Comment Edited] (NIFI-16361) ExcelReader and SplitExcel fail on wrongly formatted cell.
[ https://issues.apache.org/jira/browse/NIFI-16361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18116391#comment-18116391 ]
Daniel Stieglitz edited comment on NIFI-16361 at 9/17/26 3:36 PM:
------------------------------------------------------------------
[~iiojj2] Per the AI explanation the error is coming from POI code. We would have to make a ticket for them to fix this.
was (Author: JIRAUSER294662):
[~iiojj2] Per the AI explanation the error is coming from POI code. We would have to put a ticket into them to fix this.
> ExcelReader and SplitExcel fail on wrongly formatted cell.
> ----------------------------------------------------------
>
> Key: NIFI-16361
> URL: https://issues.apache.org/jira/browse/NIFI-16361
> Project: Apache NiFi
> Issue Type: Bug
> Reporter: Philipp Korniets
> Assignee: Daniel Stieglitz
> Priority: Major
> Attachments: numeric-empty-repro.xlsx
>
>
> {code:java}
> 2026-09-17 14:47:13,870 WARN [Timer-Driven Process Thread-4] o.a.n.controller.tasks.ConnectableTask Processing halted: uncaught exception in Component [SplitExcel[id=afd5a7ec-01a0-1000-1e4c-3db1dd039f6a]] java.lang.NumberFormatException: empty String at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842) at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110) at java.base/java.lang.Double.parseDouble(Double.java:792) at com.github.pjfanning.xlsx.impl.NumberUtil.parseDouble(NumberUtil.java:10) at com.github.pjfanning.xlsx.impl.StreamingCell.getNumericCellValue(StreamingCell.java:205) at org.apache.poi.ss.util.CellUtil.copyCell(CellUtil.java:419) at org.apache.nifi.processors.excel.SplitExcel.copyRows(SplitExcel.java:280) at org.apache.nifi.processors.excel.SplitExcel.handleXSSF(SplitExcel.java:257) at org.apache.nifi.processors.excel.SplitExcel.lambda$onTrigger$0(SplitExcel.java:194) at org.apache.nifi.controller.repository.StandardProcessSession.read(StandardProcessSession.java:2859) at org.apache.nifi.controller.repository.WeakHashMapProcessSessionFactory$FactoryRetainingProcessSession.read(WeakHashMapProcessSessionFactory.java:260) at org.apache.nifi.processors.excel.SplitExcel.onTrigger(SplitExcel.java:191) at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1293) at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:237) at org.apache.nifi.controller.scheduling.AbstractTimeBasedSchedulingAgent.lambda$doScheduleOnce$0(AbstractTimeBasedSchedulingAgent.java:59) at org.apache.nifi.engine.FlowEngine.lambda$wrap$1(FlowEngine.java:105) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583){code}
> AI Explanation:
> The execution path is:
> SplitExcel.copyRows()
> → CellUtil.copyCell()
> → sourceCell.getNumericCellValue()
> → NumberUtil.parseDouble("")
> → NumberFormatException
>
> The attached workbook contains cells encoded like:
> <c s="29" t="n"><v/></c>
>
>
> That representation says “numeric cell,” but the value is an empty string. Apache POI therefore requests a numeric value, and the streaming XLSX implementation attempts:
> Double.parseDouble("")
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)