Github user markap14 commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2733#discussion_r190229672
  
    --- Diff: 
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFile.java
 ---
    @@ -255,43 +262,47 @@ public void onScheduled(final ProcessContext context) 
{
             final Path absPath = filePath.toAbsolutePath();
             final String absPathString = absPath.getParent().toString() + 
File.separator;
     
    +        final DateFormat formatter = new 
SimpleDateFormat(FILE_MODIFY_DATE_ATTR_FORMAT, Locale.US);
    --- End diff --
    
    We don't recommend ever using ThreadLocal for processors in NiFi. This is 
because each time a Processor is run, it is done in a potentially different 
thread. For a large deployment you could have hundreds of threads, and the 
threads stay around for the life of the instance, so the cleanup is a little 
awkward. The pattern that we commonly follow is to use a BlockingQueue and poll 
from that, then create if necessary, and put back. I.e., a simple Object Pool. 
And I did consider it but decided that the complexity that it adds to the code 
was not worth it, given the cost of creating the DateFormat.


---

Reply via email to