You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2022/04/12 12:52:19 UTC
[nifi] branch main updated: NIFI-9911: Fixed checking HDFS URI in ListHDFS' Directory property
This is an automated email from the ASF dual-hosted git repository.
mattyb149 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 47f75651bb NIFI-9911: Fixed checking HDFS URI in ListHDFS' Directory property
47f75651bb is described below
commit 47f75651bb49d7868f63b02668300f702cbde3ea
Author: Peter Turcsanyi <tu...@apache.org>
AuthorDate: Tue Apr 12 09:57:33 2022 +0200
NIFI-9911: Fixed checking HDFS URI in ListHDFS' Directory property
Signed-off-by: Matthew Burgess <ma...@apache.org>
This closes #5957
---
.../processors/hadoop/AbstractHadoopProcessor.java | 2 +-
.../nifi/processors/hadoop/AbstractHadoopTest.java | 26 ++++++++++++++++++++--
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/nifi-nar-bundles/nifi-extension-utils/nifi-hadoop-utils/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java b/nifi-nar-bundles/nifi-extension-utils/nifi-hadoop-utils/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java
index 7c574a72f8..f7c082bf12 100644
--- a/nifi-nar-bundles/nifi-extension-utils/nifi-hadoop-utils/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java
+++ b/nifi-nar-bundles/nifi-extension-utils/nifi-hadoop-utils/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java
@@ -696,7 +696,7 @@ public abstract class AbstractHadoopProcessor extends AbstractProcessor implemen
final String path;
if (uri.getScheme() != null) {
- if (!uri.getScheme().equals(fileSystemUri.getScheme()) || !uri.getAuthority().equals(fileSystemUri.getAuthority())) {
+ if (!uri.getScheme().equals(fileSystemUri.getScheme()) || (uri.getAuthority() != null && !uri.getAuthority().equals(fileSystemUri.getAuthority()))) {
if (propertyName.isPresent()) {
getLogger().warn(NORMALIZE_ERROR_WITH_PROPERTY, propertyName, uri, fileSystemUri);
} else {
diff --git a/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java
index ff07d26854..ce5ef02f46 100644
--- a/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java
+++ b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java
@@ -294,9 +294,9 @@ public class AbstractHadoopTest {
}
@Test
- public void testGetNormalizedPathWithIncorrectFileSystem() throws URISyntaxException {
+ public void testGetNormalizedPathWithIncorrectScheme() throws URISyntaxException {
AbstractHadoopProcessor processor = initProcessorForTestGetNormalizedPath("abfs://container3@storageaccount3");
- TestRunner runner = initTestRunnerForTestGetNormalizedPath(processor, "abfs://container*@storageaccount*/dir3");
+ TestRunner runner = initTestRunnerForTestGetNormalizedPath(processor, "hdfs://container3@storageaccount3/dir3");
Path path = processor.getNormalizedPath(runner.getProcessContext(), AbstractHadoopProcessor.DIRECTORY);
@@ -304,6 +304,28 @@ public class AbstractHadoopTest {
assertFalse(runner.getLogger().getWarnMessages().isEmpty());
}
+ @Test
+ public void testGetNormalizedPathWithIncorrectAuthority() throws URISyntaxException {
+ AbstractHadoopProcessor processor = initProcessorForTestGetNormalizedPath("abfs://container4@storageaccount4");
+ TestRunner runner = initTestRunnerForTestGetNormalizedPath(processor, "abfs://container*@storageaccount*/dir4");
+
+ Path path = processor.getNormalizedPath(runner.getProcessContext(), AbstractHadoopProcessor.DIRECTORY);
+
+ assertEquals("/dir4", path.toString());
+ assertFalse(runner.getLogger().getWarnMessages().isEmpty());
+ }
+
+ @Test
+ public void testGetNormalizedPathWithoutAuthority() throws URISyntaxException {
+ AbstractHadoopProcessor processor = initProcessorForTestGetNormalizedPath("hdfs://myhost:9000");
+ TestRunner runner = initTestRunnerForTestGetNormalizedPath(processor, "hdfs:///dir5");
+
+ Path path = processor.getNormalizedPath(runner.getProcessContext(), AbstractHadoopProcessor.DIRECTORY);
+
+ assertEquals("/dir5", path.toString());
+ assertTrue(runner.getLogger().getWarnMessages().isEmpty());
+ }
+
private AbstractHadoopProcessor initProcessorForTestGetNormalizedPath(String fileSystemUri) throws URISyntaxException {
final FileSystem fileSystem = mock(FileSystem.class);
when(fileSystem.getUri()).thenReturn(new URI(fileSystemUri));