You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by bo...@apache.org on 2020/01/20 19:58:55 UTC
[beam] branch release-2.19.0 updated: [BEAM-9123] HadoopResourceId
returns wrong directoryName bugfix
This is an automated email from the ASF dual-hosted git repository.
boyuanz pushed a commit to branch release-2.19.0
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/release-2.19.0 by this push:
new 5ab8ead [BEAM-9123] HadoopResourceId returns wrong directoryName bugfix
new 526158c Merge pull request #10626 from dmvk/BEAM-9123-backport-2.19
5ab8ead is described below
commit 5ab8ead726dea577205056cc03a417c3753a65f2
Author: marek.simunek <ma...@firma.seznam.cz>
AuthorDate: Wed Jan 15 16:42:18 2020 +0100
[BEAM-9123] HadoopResourceId returns wrong directoryName bugfix
---
.../org/apache/beam/sdk/io/hdfs/HadoopResourceId.java | 4 ++++
.../org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java | 15 +++++++++++++++
2 files changed, 19 insertions(+)
diff --git a/sdks/java/io/hadoop-file-system/src/main/java/org/apache/beam/sdk/io/hdfs/HadoopResourceId.java b/sdks/java/io/hadoop-file-system/src/main/java/org/apache/beam/sdk/io/hdfs/HadoopResourceId.java
index 4e5f6e2..b68839b 100644
--- a/sdks/java/io/hadoop-file-system/src/main/java/org/apache/beam/sdk/io/hdfs/HadoopResourceId.java
+++ b/sdks/java/io/hadoop-file-system/src/main/java/org/apache/beam/sdk/io/hdfs/HadoopResourceId.java
@@ -65,6 +65,10 @@ class HadoopResourceId implements ResourceId {
@Override
public String getFilename() {
+ if (isDirectory()) {
+ Path parentPath = new Path(uri).getParent();
+ return parentPath == null ? null : parentPath.getName();
+ }
return new Path(uri).getName();
}
diff --git a/sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java b/sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java
index 4d7fb8d..1726a3e 100644
--- a/sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java
+++ b/sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java
@@ -17,6 +17,9 @@
*/
package org.apache.beam.sdk.io.hdfs;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
import java.net.URI;
import java.util.Collections;
import org.apache.beam.sdk.io.FileSystems;
@@ -65,4 +68,16 @@ public class HadoopResourceIdTest {
"hdfs://" + hdfsClusterBaseUri.getPath(), true /* isDirectory */);
ResourceIdTester.runResourceIdBattery(baseDirectory);
}
+
+ @Test
+ public void testGetFilename() {
+ assertNull(toResourceIdentifier("").getFilename());
+ assertEquals("abc", toResourceIdentifier("/dirA/abc").getFilename());
+ assertEquals("abc", toResourceIdentifier("/dirA/abc/").getFilename());
+ assertEquals("xyz.txt", toResourceIdentifier("/dirA/abc/xyz.txt").getFilename());
+ }
+
+ private ResourceId toResourceIdentifier(String path) {
+ return new HadoopResourceId(hdfsClusterBaseUri.resolve(path));
+ }
}