You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2016/02/25 21:24:09 UTC

nifi git commit: NIFI-1513: fixed some easy to fix errors

Repository: nifi
Updated Branches:
  refs/heads/master 32f476aaa -> c7e24c756


NIFI-1513: fixed some easy to fix errors

Addressing checkstyle issue.

This closes #221

Signed-off-by: Matt Gilman <ma...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/c7e24c75
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/c7e24c75
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/c7e24c75

Branch: refs/heads/master
Commit: c7e24c75699a0b55b9f29f3bd2e5f5e2184833f5
Parents: 32f476a
Author: Tony Kurc <tr...@gmail.com>
Authored: Sat Feb 13 22:37:10 2016 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Thu Feb 25 15:21:40 2016 -0500

----------------------------------------------------------------------
 .../org/apache/nifi/processor/Relationship.java |   2 +-
 .../functions/GetDelimitedFieldEvaluator.java   |   2 +-
 .../org/apache/nifi/processor/util/bin/Bin.java |   9 +-
 .../nifi/remote/client/SiteToSiteClient.java    |   2 +-
 .../cluster/manager/impl/WebClusterManager.java |   5 +-
 .../nifi/processors/script/ExecuteScript.java   |   4 +-
 .../nifi/processors/standard/GetHTTP.java       | 102 ++++++++++---------
 .../nifi/processors/standard/util/Bin.java      |   7 +-
 .../standard/util/crypto/scrypt/Scrypt.java     |   2 +
 .../ControllerStatusReportingTask.java          |   1 -
 .../ganglia/StandardGangliaReporter.java        |  10 +-
 11 files changed, 78 insertions(+), 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java
----------------------------------------------------------------------
diff --git a/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java b/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java
index d9f13be..0fec1f6 100644
--- a/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java
+++ b/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java
@@ -44,7 +44,7 @@ public final class Relationship implements Comparable<Relationship> {
     protected Relationship(final Builder builder) {
         this.name = builder.name == null ? null : builder.name.intern();
         this.description = builder.description;
-        this.hashCode = 301 + this.name.hashCode(); // compute only once, since it gets called a bunch and will never change
+        this.hashCode = 301 + ( (name == null) ? 0 :this.name.hashCode() ); // compute only once, since it gets called a bunch and will never change
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GetDelimitedFieldEvaluator.java
----------------------------------------------------------------------
diff --git a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GetDelimitedFieldEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GetDelimitedFieldEvaluator.java
index e5695a8..230b942 100644
--- a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GetDelimitedFieldEvaluator.java
+++ b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GetDelimitedFieldEvaluator.java
@@ -99,7 +99,7 @@ public class GetDelimitedFieldEvaluator extends StringEvaluator {
         if (escapeString == null || escapeString.isEmpty()) {
             throw new AttributeExpressionLanguageException("Cannot evaluate getDelimitedField function because the escape character "
                 + "(which character is used to escape the quote character or delimiter) was not specified");
-        } else if (quoteString.length() > 1) {
+        } else if (escapeString.length() > 1) {
             throw new AttributeExpressionLanguageException("Cannot evaluate getDelimitedField function because the escape character "
                 + "(which character is used to escape the quote character or delimiter) evaluated to \"" + escapeString + "\", but only a single character is allowed.");
         }

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/bin/Bin.java
----------------------------------------------------------------------
diff --git a/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/bin/Bin.java b/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/bin/Bin.java
index af8a8cd..35c225b 100644
--- a/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/bin/Bin.java
+++ b/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/bin/Bin.java
@@ -25,6 +25,10 @@ import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.processor.ProcessSession;
 import org.apache.nifi.processor.util.FlowFileSessionWrapper;
 
+/**
+ * Note: {@code Bin} objects are NOT thread safe. If multiple threads access a {@code Bin}, the caller must synchronize
+ * access.
+ */
 public class Bin {
 
     private final long creationMomentEpochNs;
@@ -121,8 +125,9 @@ public class Bin {
             final String countValue = flowFile.getAttribute(fileCountAttribute);
             final Integer count = toInteger(countValue);
             if (count != null) {
-                this.maximumEntries = Math.min(count, this.maximumEntries);
-                this.minimumEntries = this.maximumEntries;
+                int currentMaxEntries = this.maximumEntries;
+                this.maximumEntries = Math.min(count, currentMaxEntries);
+                this.minimumEntries = currentMaxEntries;
             }
         }
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java
----------------------------------------------------------------------
diff --git a/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java
index 1581c42..2b04df9 100644
--- a/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java
+++ b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java
@@ -610,7 +610,7 @@ public interface SiteToSiteClient extends Closeable {
                 trustManagerFactory = null;
             }
 
-            if (keyManagerFactory != null || trustManagerFactory != null) {
+            if (keyManagerFactory != null && trustManagerFactory != null) {
                 try {
                     // initialize the ssl context
                     final SSLContext sslContext = SSLContext.getInstance("TLS");

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java
index e98e8e7..c0f4c63 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java
@@ -3015,8 +3015,9 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C
 
         final List<FlowFileSummaryDTO> summaryDTOs = new ArrayList<>(flowFileSummaries);
         listingRequest.setFlowFileSummaries(summaryDTOs);
-
-        final int percentCompleted = numStepsCompleted / numStepsTotal;
+        // depends on invariant if numStepsTotal is 0, so is numStepsCompleted, all steps being completed
+        // would be 1
+        final int percentCompleted = (numStepsTotal == 0) ? 1 : numStepsCompleted / numStepsTotal;
         listingRequest.setPercentCompleted(percentCompleted);
         listingRequest.setFinished(finished);
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
index 0af3214..3f7c202 100644
--- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
+++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
@@ -133,7 +133,9 @@ public class ExecuteScript extends AbstractScriptProcessor {
 
         try {
             if (scriptToRun == null && scriptPath != null) {
-                scriptToRun = IOUtils.toString(new FileInputStream(scriptPath));
+                try (final FileInputStream scriptStream = new FileInputStream(scriptPath)) {
+                    scriptToRun = IOUtils.toString(scriptStream);
+                }
             }
         } catch (IOException ioe) {
             throw new ProcessException(ioe);

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
index 999bead..f2ed529 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
@@ -398,9 +398,6 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
                 clientBuilder.setProxy(new HttpHost(host, port));
             }
 
-            // create the http client
-            final CloseableHttpClient client = clientBuilder.build();
-
             // create request
             final HttpGet get = new HttpGet(url);
             get.setConfig(requestConfigBuilder.build());
@@ -426,60 +423,65 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
             if (accept != null) {
                 get.addHeader(HEADER_ACCEPT, accept);
             }
+            // create the http client
+            try ( final CloseableHttpClient client = clientBuilder.build() ) {
+                // NOTE: including this inner try in order to swallow exceptions on close
+                try {
+                    final StopWatch stopWatch = new StopWatch(true);
+                    final HttpResponse response = client.execute(get);
+                    final int statusCode = response.getStatusLine().getStatusCode();
+                    if (statusCode == NOT_MODIFIED) {
+                        logger.info("content not retrieved because server returned HTTP Status Code {}: Not Modified", new Object[]{NOT_MODIFIED});
+                        context.yield();
+                        // doing a commit in case there were flow files in the input queue
+                        session.commit();
+                        return;
+                    }
+                    final String statusExplanation = response.getStatusLine().getReasonPhrase();
 
-            try {
-                final StopWatch stopWatch = new StopWatch(true);
-                final HttpResponse response = client.execute(get);
-                final int statusCode = response.getStatusLine().getStatusCode();
-                if (statusCode == NOT_MODIFIED) {
-                    logger.info("content not retrieved because server returned HTTP Status Code {}: Not Modified", new Object[]{NOT_MODIFIED});
-                    context.yield();
-                    // doing a commit in case there were flow files in the input queue
-                    session.commit();
-                    return;
-                }
-                final String statusExplanation = response.getStatusLine().getReasonPhrase();
-
-                if (statusCode >= 300) {
-                    logger.error("received status code {}:{} from {}", new Object[]{statusCode, statusExplanation, url});
-                    // doing a commit in case there were flow files in the input queue
-                    session.commit();
-                    return;
-                }
-
-                FlowFile flowFile = session.create();
-                flowFile = session.putAttribute(flowFile, CoreAttributes.FILENAME.key(), context.getProperty(FILENAME).evaluateAttributeExpressions().getValue());
-                flowFile = session.putAttribute(flowFile, this.getClass().getSimpleName().toLowerCase() + ".remote.source", source);
-                flowFile = session.importFrom(response.getEntity().getContent(), flowFile);
+                    if (statusCode >= 300) {
+                        logger.error("received status code {}:{} from {}", new Object[]{statusCode, statusExplanation, url});
+                        // doing a commit in case there were flow files in the input queue
+                        session.commit();
+                        return;
+                    }
 
-                final Header contentTypeHeader = response.getFirstHeader("Content-Type");
-                if (contentTypeHeader != null) {
-                    final String contentType = contentTypeHeader.getValue();
-                    if (!contentType.trim().isEmpty()) {
-                        flowFile = session.putAttribute(flowFile, CoreAttributes.MIME_TYPE.key(), contentType.trim());
+                    FlowFile flowFile = session.create();
+                    flowFile = session.putAttribute(flowFile, CoreAttributes.FILENAME.key(), context.getProperty(FILENAME).evaluateAttributeExpressions().getValue());
+                    flowFile = session.putAttribute(flowFile, this.getClass().getSimpleName().toLowerCase() + ".remote.source", source);
+                    flowFile = session.importFrom(response.getEntity().getContent(), flowFile);
+
+                    final Header contentTypeHeader = response.getFirstHeader("Content-Type");
+                    if (contentTypeHeader != null) {
+                        final String contentType = contentTypeHeader.getValue();
+                        if (!contentType.trim().isEmpty()) {
+                            flowFile = session.putAttribute(flowFile, CoreAttributes.MIME_TYPE.key(), contentType.trim());
+                        }
                     }
-                }
 
-                final long flowFileSize = flowFile.getSize();
-                stopWatch.stop();
-                final String dataRate = stopWatch.calculateDataRate(flowFileSize);
-                session.getProvenanceReporter().receive(flowFile, url, stopWatch.getDuration(TimeUnit.MILLISECONDS));
-                session.transfer(flowFile, REL_SUCCESS);
-                logger.info("Successfully received {} from {} at a rate of {}; transferred to success", new Object[]{flowFile, url, dataRate});
-                session.commit();
+                    final long flowFileSize = flowFile.getSize();
+                    stopWatch.stop();
+                    final String dataRate = stopWatch.calculateDataRate(flowFileSize);
+                    session.getProvenanceReporter().receive(flowFile, url, stopWatch.getDuration(TimeUnit.MILLISECONDS));
+                    session.transfer(flowFile, REL_SUCCESS);
+                    logger.info("Successfully received {} from {} at a rate of {}; transferred to success", new Object[]{flowFile, url, dataRate});
+                    session.commit();
 
-                updateStateMap(context,response,beforeStateMap,url);
+                    updateStateMap(context,response,beforeStateMap,url);
 
+                } catch (final IOException e) {
+                    context.yield();
+                    session.rollback();
+                    logger.error("Failed to retrieve file from {} due to {}; rolling back session", new Object[]{url, e.getMessage()}, e);
+                    throw new ProcessException(e);
+                } catch (final Throwable t) {
+                    context.yield();
+                    session.rollback();
+                    logger.error("Failed to process due to {}; rolling back session", new Object[]{t.getMessage()}, t);
+                    throw t;
+                }
             } catch (final IOException e) {
-                context.yield();
-                session.rollback();
-                logger.error("Failed to retrieve file from {} due to {}; rolling back session", new Object[]{url, e.getMessage()}, e);
-                throw new ProcessException(e);
-            } catch (final Throwable t) {
-                context.yield();
-                session.rollback();
-                logger.error("Failed to process due to {}; rolling back session", new Object[]{t.getMessage()}, t);
-                throw t;
+                logger.debug("Error closing client due to {}, continuing.", new Object[]{e.getMessage()});
             }
         } finally {
             conMan.shutdown();

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java
index 96c2a40..09cccbd 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java
@@ -25,6 +25,8 @@ import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.processor.ProcessSession;
 
 /**
+ * Note: {@code Bin} objects are NOT thread safe. If multiple threads access a {@code Bin}, the caller must synchronize
+ * access.
  * @deprecated As of release 0.5.0, replaced by
  * {@link org.apache.nifi.processor.util.bin.Bin}
  */
@@ -125,8 +127,9 @@ public class Bin {
             final String countValue = flowFile.getAttribute(fileCountAttribute);
             final Integer count = toInteger(countValue);
             if (count != null) {
-                this.maximumEntries = Math.min(count, this.maximumEntries);
-                this.minimumEntries = this.maximumEntries;
+                final int currentMaximumEntries = this.maximumEntries;
+                this.maximumEntries = Math.min(count, currentMaximumEntries);
+                this.minimumEntries = currentMaximumEntries;
             }
         }
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/crypto/scrypt/Scrypt.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/crypto/scrypt/Scrypt.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/crypto/scrypt/Scrypt.java
index b1cdbee..7785e9e 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/crypto/scrypt/Scrypt.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/crypto/scrypt/Scrypt.java
@@ -285,6 +285,8 @@ public class Scrypt {
             // Do not enforce this check here. According to the scrypt spec, the salt can be empty. However, in the user-facing ScryptCipherProvider, enforce an arbitrary check to avoid empty salts
             logger.warn("An empty salt was used for scrypt key derivation");
 //            throw new IllegalArgumentException("Salt cannot be empty");
+            // as the Exception is not being thrown, prevent NPE if salt is null by setting it to empty array
+            if( salt == null ) salt = new byte[]{};
         }
 
         if (saltLength < 8 || saltLength > 32) {

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
index 4c9b4b1..49cb9de 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
@@ -105,7 +105,6 @@ public class ControllerStatusReportingTask extends AbstractReportingTask {
     @Override
     public void onTrigger(final ReportingContext context) {
         final ProcessGroupStatus controllerStatus = context.getEventAccess().getControllerStatus();
-        controllerStatus.clone();
 
         final boolean showDeltas = context.getProperty(SHOW_DELTAS).asBoolean();
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/c7e24c75/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
index 54e4bd3..035cd3c 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
@@ -117,8 +117,7 @@ public class StandardGangliaReporter extends AbstractReportingTask {
                     return 0L;
                 }
 
-                final Long value = status.getBytesReceived();
-                return (value == null) ? 0L : value;
+                return status.getBytesReceived();
             }
         });
 
@@ -130,8 +129,7 @@ public class StandardGangliaReporter extends AbstractReportingTask {
                     return 0;
                 }
 
-                final Integer value = status.getFlowFilesSent();
-                return (value == null) ? 0 : value;
+                return status.getFlowFilesSent();
             }
         });
 
@@ -142,9 +140,7 @@ public class StandardGangliaReporter extends AbstractReportingTask {
                 if (status == null) {
                     return 0L;
                 }
-
-                final Long value = status.getBytesSent();
-                return (value == null) ? 0L : value;
+                return status.getBytesSent();
             }
         });