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/03/06 17:46:41 UTC

[nifi] 01/02: NIFI-7232 if users do not supply a remote path PutSFTP with conflict resolution will fail with an NPE

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

joewitt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 20dda05f2622fe9153c50989d36d7fa0268136e9
Author: Joe Witt <jo...@apache.org>
AuthorDate: Fri Mar 6 10:32:12 2020 -0500

    NIFI-7232 if users do not supply a remote path PutSFTP with conflict resolution will fail with an NPE
---
 .../java/org/apache/nifi/processors/standard/PutFileTransfer.java    | 5 +++--
 .../java/org/apache/nifi/processors/standard/util/SFTPTransfer.java  | 1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java
index 20e2c5a..3b9af1a 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java
@@ -39,6 +39,7 @@ import org.apache.nifi.processors.standard.util.FileInfo;
 import org.apache.nifi.processors.standard.util.FileTransfer;
 import org.apache.nifi.processors.standard.util.SFTPTransfer;
 import org.apache.nifi.util.StopWatch;
+import org.apache.nifi.util.StringUtils;
 
 /**
  * Base class for PutFTP & PutSFTP
@@ -102,8 +103,8 @@ public abstract class PutFileTransfer<T extends FileTransfer> extends AbstractPr
             do {
                 final String rootPath = context.getProperty(FileTransfer.REMOTE_PATH).evaluateAttributeExpressions(flowFile).getValue();
                 final String workingDirPath;
-                if (rootPath == null) {
-                    workingDirPath = null;
+                if (StringUtils.isBlank(rootPath)) {
+                    workingDirPath = transfer.getHomeDirectory(flowFile);
                 } else {
                     workingDirPath = transfer.getAbsolutePath(flowFile, rootPath);
                 }
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
index 3a341bc..870867f 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
@@ -631,6 +631,7 @@ public class SFTPTransfer implements FileTransfer {
         try {
             this.homeDir = sftpClient.canonicalize("");
         } catch (IOException e) {
+            this.homeDir = "";
             // For some combination of server configuration and user home directory, getHome() can fail with "2: File not found"
             // Since  homeDir is only used tor SEND provenance event transit uri, this is harmless. Log and continue.
             logger.debug("Failed to retrieve {} home directory due to {}", new Object[]{username, e.getMessage()});