[ 
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)

Reply via email to