[
https://issues.apache.org/jira/browse/NIFI-6882?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17018751#comment-17018751
]
Joe Witt commented on NIFI-6882:
--------------------------------
[~JoshE]that would be good next time. Pull Requests are strongly preferred
though. For this time I've just applied the patch locally and referenced the
JIRA. The tests as they are cannot be kept - at least the few that result in
creating directories in the tests which end up outside the target dir and
cannot be cleaned. Removed those. Verifying behavior off a clean build
shortly and if good will merge. I think the fix is reasonable/best we can do
for now as it appears - if Im reading it right - that this is really just due
to an underlying regression in Java 8 which was fixed in Java 9. So executions
of the current NiFI release on Java 11 should in theory be fine without this
change.
> PutFile throws NullPointerException if destination directory doesn't exist
> --------------------------------------------------------------------------
>
> Key: NIFI-6882
> URL: https://issues.apache.org/jira/browse/NIFI-6882
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Affects Versions: 1.10.0
> Reporter: Mark Payne
> Assignee: Josh P
> Priority: Critical
> Fix For: 1.11.0
>
> Attachments:
> 0001-NIFI-6882-Use-absolute-path-to-prevent-PutFile-NPE.patch
>
>
> I have a PutFile processor that is configured to create directories if they
> don't exist. I have the directory set to "heap-dumps", which does not exist.
> When data came into the processor, it started throwing the following NPE:
> {code}
> 2019-11-18 16:46:14,879 ERROR [Timer-Driven Process Thread-2]
> o.a.nifi.processors.standard.PutFile
> PutFile[id=0b173f77-d60a-1ce8-d59e-4a9aeff49dbf] Penalizing
> StandardFlowFileRecord[uuid=38a6849b-965b-46b2-96d3-fe37a1c22cf8,claim=StandardContentClaim
> [resourceClaim=StandardResourceClaim[id=1574113470589-2, container=default,
> section=2], offset=0,
> length=1139822320],offset=0,name=heap.bin.gz,size=1139822320] and
> transferring to failure due to java.lang.NullPointerException:
> java.lang.NullPointerException
> java.lang.NullPointerException: null
> at java.nio.file.Files.provider(Files.java:97)
> at java.nio.file.Files.exists(Files.java:2385)
> at
> org.apache.nifi.processors.standard.PutFile.onTrigger(PutFile.java:243)
> at
> org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
> at
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1176)
> at
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213)
> at
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
> at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)