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()) {