Repository: nifi Updated Branches: refs/heads/NIFI-1073 21983c157 -> 2fa02f31c
NIFI-1073 fixed resource leaks and used nifi util for ByteArrayInputStream in CaptureServlet Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/aef73fdc Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/aef73fdc Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/aef73fdc Branch: refs/heads/NIFI-1073 Commit: aef73fdc0d97c8e499eba9536ba47e548cc0b43f Parents: 21983c1 Author: Tony Kurc <[email protected]> Authored: Mon Oct 26 21:00:27 2015 -0400 Committer: Tony Kurc <[email protected]> Committed: Mon Oct 26 21:29:50 2015 -0400 ---------------------------------------------------------------------- .../nifi/processors/WriteResourceToStream.java | 11 +++++++--- .../processors/standard/ListFileTransfer.java | 2 ++ .../processors/standard/CaptureServlet.java | 12 ++++++---- .../DistributedMapCacheClientService.java | 23 +++++++------------- 4 files changed, 26 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/aef73fdc/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java ---------------------------------------------------------------------- diff --git a/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java b/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java index 5d595b4..c840ce8 100644 --- a/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java +++ b/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java @@ -17,6 +17,7 @@ package org.apache.nifi.processors; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.util.Collections; import java.util.HashSet; @@ -34,6 +35,7 @@ import org.apache.nifi.processor.ProcessorInitializationContext; import org.apache.nifi.processor.Relationship; import org.apache.nifi.processor.exception.ProcessException; import org.apache.nifi.processor.io.OutputStreamCallback; +import org.apache.nifi.util.file.FileUtils; @Tags({ "example", "resources" }) @CapabilityDescription("This example processor loads a resource from the nar and writes it to the FlowFile content") @@ -57,13 +59,16 @@ public class WriteResourceToStream extends AbstractProcessor { relationships.add(REL_SUCCESS); relationships.add(REL_FAILURE); this.relationships = Collections.unmodifiableSet(relationships); - + final InputStream resourceStream = Thread.currentThread() + .getContextClassLoader().getResourceAsStream("file.txt"); try { - this.resourceData = IOUtils.toString(Thread.currentThread() - .getContextClassLoader().getResourceAsStream("file.txt")); + this.resourceData = IOUtils.toString(resourceStream); } catch (IOException e) { throw new RuntimeException("Unable to load resources", e); + } finally { + FileUtils.closeQuietly(resourceStream); } + } @Override http://git-wip-us.apache.org/repos/asf/nifi/blob/aef73fdc/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java index b6c8c28..ce344ed 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListFileTransfer.java @@ -29,6 +29,7 @@ import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.processor.util.StandardValidators; import org.apache.nifi.processors.standard.util.FileInfo; import org.apache.nifi.processors.standard.util.FileTransfer; +import org.apache.nifi.util.file.FileUtils; public abstract class ListFileTransfer extends AbstractListProcessor<FileInfo> { public static final PropertyDescriptor HOSTNAME = new PropertyDescriptor.Builder() @@ -93,6 +94,7 @@ public abstract class ListFileTransfer extends AbstractListProcessor<FileInfo> { protected List<FileInfo> performListing(final ProcessContext context, final Long minTimestamp) throws IOException { final FileTransfer transfer = getFileTransfer(context); final List<FileInfo> listing = transfer.getListing(); + FileUtils.closeQuietly(transfer); if (minTimestamp == null) { return listing; } http://git-wip-us.apache.org/repos/asf/nifi/blob/aef73fdc/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java index d6c87d6..a1398f4 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java @@ -24,8 +24,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.core.Response.Status; -import org.apache.activemq.util.ByteArrayOutputStream; +import org.apache.nifi.stream.io.ByteArrayOutputStream; import org.apache.nifi.stream.io.StreamUtils; +import org.apache.nifi.util.file.FileUtils; public class CaptureServlet extends HttpServlet { @@ -40,9 +41,12 @@ public class CaptureServlet extends HttpServlet { @Override protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { final ByteArrayOutputStream baos = new ByteArrayOutputStream(); - StreamUtils.copy(request.getInputStream(), baos); - this.lastPost = baos.toByteArray(); - + try{ + StreamUtils.copy(request.getInputStream(), baos); + this.lastPost = baos.toByteArray(); + } finally{ + FileUtils.closeQuietly(baos); + } response.setStatus(Status.OK.getStatusCode()); } http://git-wip-us.apache.org/repos/asf/nifi/blob/aef73fdc/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java index c03dd5a..9d9c741 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java @@ -40,6 +40,7 @@ import org.apache.nifi.ssl.SSLContextService; import org.apache.nifi.ssl.SSLContextService.ClientAuth; import org.apache.nifi.stream.io.ByteArrayOutputStream; import org.apache.nifi.stream.io.DataOutputStream; +import org.apache.nifi.util.file.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -298,27 +299,19 @@ public class DistributedMapCacheClientService extends AbstractControllerService if (closed) { throw new IllegalStateException("Client is closed"); } - + boolean tryToRequeue = true; final CommsSession session = leaseCommsSession(); try { return action.execute(session); } catch (final IOException ioe) { - try { - session.close(); - } catch (final IOException ignored) { - } - + tryToRequeue = false; throw ioe; } finally { - if (!session.isClosed()) { - if (this.closed) { - try { - session.close(); - } catch (final IOException ioe) { - } - } else { - queue.offer(session); - } + if (tryToRequeue == true && this.closed == false) { + queue.offer(session); + } + else{ + FileUtils.closeQuietly(session); } } }
