You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jo...@apache.org on 2020/09/02 17:59:26 UTC

[nifi] 16/16: NIFI-7167 Fixing resource leaks in IdentifyMimeType

This is an automated email from the ASF dual-hosted git repository.

joewitt pushed a commit to branch support/nifi-1.12.x
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 353a91beb8de5a903c6b01f43bbc0d6e1ca651ae
Author: Cameron E. Tidd <ct...@TC-PC10.TC.technicallycreative.com>
AuthorDate: Thu Aug 20 20:56:00 2020 -0400

    NIFI-7167 Fixing resource leaks in IdentifyMimeType
    
    The TikaInputStream and FileInputStream instances utilized in IdentifyMimeType are now explicitly closed. The FileInputStream is additionally wrapped by a BufferedInputStream.
---
 .../org/apache/nifi/processors/standard/IdentifyMimeType.java    | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java
index d6ebd39..90b4c41 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java
@@ -177,8 +177,9 @@ public class IdentifyMimeType extends AbstractProcessor {
             }
 
         } else {
-            try {
-                this.detector = MimeTypesFactory.create(new FileInputStream(configFile));
+            try (final FileInputStream fis = new FileInputStream(configFile);
+                 final InputStream bis = new BufferedInputStream(fis)) {
+                this.detector = MimeTypesFactory.create(bis);
                 this.mimeTypes = (MimeTypes)this.detector;
             } catch (Exception e) {
                 context.yield();
@@ -212,8 +213,8 @@ public class IdentifyMimeType extends AbstractProcessor {
         session.read(flowFile, new InputStreamCallback() {
             @Override
             public void process(final InputStream stream) throws IOException {
-                try (final InputStream in = new BufferedInputStream(stream)) {
-                    TikaInputStream tikaStream = TikaInputStream.get(in);
+                try (final InputStream in = new BufferedInputStream(stream);
+                     final TikaInputStream tikaStream = TikaInputStream.get(in)) {
                     Metadata metadata = new Metadata();
 
                     if (filename != null && context.getProperty(USE_FILENAME_IN_DETECTION).asBoolean()) {