Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-6882

PutFile throws NullPointerException if destination directory doesn't exist

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 1.10.0
    • 1.11.0
    • Extensions
    • None

    Description

      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:

      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)
      

      Attachments

        Activity

          People

            JoshE Josh P
            markap14 Mark Payne
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: