You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by ag...@apache.org on 2020/12/10 15:16:10 UTC

[storm] branch master updated: STORM-3720 get correct results for BlobStoreFile getModTime() (#3357)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new eba7781  STORM-3720 get correct results for BlobStoreFile getModTime() (#3357)
eba7781 is described below

commit eba778189cac5be896fe8fb724b1852882bb851f
Author: agresch <ag...@gmail.com>
AuthorDate: Thu Dec 10 09:15:53 2020 -0600

    STORM-3720 get correct results for BlobStoreFile getModTime() (#3357)
---
 .../java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreFile.java   | 7 +------
 .../org/apache/storm/hdfs/blobstore/HdfsBlobStoreImplTest.java    | 8 ++++++++
 .../java/org/apache/storm/blobstore/LocalFsBlobStoreFile.java     | 6 +-----
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreFile.java b/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreFile.java
index 45b15b1..bff6a08 100644
--- a/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreFile.java
+++ b/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreFile.java
@@ -45,7 +45,6 @@ public class HdfsBlobStoreFile extends BlobStoreFile {
     private final String key;
     private final boolean isTmp;
     private final Path path;
-    private Long modTime = null;
     private final boolean mustBeNew;
     private final Configuration hadoopConf;
     private final FileSystem fileSystem;
@@ -106,11 +105,7 @@ public class HdfsBlobStoreFile extends BlobStoreFile {
 
     @Override
     public long getModTime() throws IOException {
-        if (modTime == null) {
-            FileSystem fs = path.getFileSystem(hadoopConf);
-            modTime = fs.getFileStatus(path).getModificationTime();
-        }
-        return modTime;
+        return fileSystem.getFileStatus(path).getModificationTime();
     }
 
     private void checkIsNotTmp() {
diff --git a/external/storm-hdfs-blobstore/src/test/java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreImplTest.java b/external/storm-hdfs-blobstore/src/test/java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreImplTest.java
index 0d44f05..ba7b33d 100644
--- a/external/storm-hdfs-blobstore/src/test/java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreImplTest.java
+++ b/external/storm-hdfs-blobstore/src/test/java/org/apache/storm/hdfs/blobstore/HdfsBlobStoreImplTest.java
@@ -104,6 +104,14 @@ public class HdfsBlobStoreImplTest {
                 ios.write(testString.getBytes(StandardCharsets.UTF_8));
             }
 
+            // test modTime can change
+            Long initialModTime = pfile.getModTime();
+            try (OutputStream ios = pfile.getOutputStream()) {
+                ios.write(testString.getBytes(StandardCharsets.UTF_8));
+            }
+            Long nextModTime = pfile.getModTime();
+            assertTrue(nextModTime > initialModTime);
+
             // test commit creates properly
             assertTrue("BlobStore key dir wasn't created", fs.exists(fullKeyDir));
             pfile.commit();
diff --git a/storm-server/src/main/java/org/apache/storm/blobstore/LocalFsBlobStoreFile.java b/storm-server/src/main/java/org/apache/storm/blobstore/LocalFsBlobStoreFile.java
index c4f3164..2262e90 100644
--- a/storm-server/src/main/java/org/apache/storm/blobstore/LocalFsBlobStoreFile.java
+++ b/storm-server/src/main/java/org/apache/storm/blobstore/LocalFsBlobStoreFile.java
@@ -29,7 +29,6 @@ public class LocalFsBlobStoreFile extends BlobStoreFile {
     private final boolean isTmp;
     private final File path;
     private final boolean mustBeNew;
-    private Long modTime = null;
     private SettableBlobMeta meta;
 
     public LocalFsBlobStoreFile(File base, String name) {
@@ -75,10 +74,7 @@ public class LocalFsBlobStoreFile extends BlobStoreFile {
 
     @Override
     public long getModTime() throws IOException {
-        if (modTime == null) {
-            modTime = path.lastModified();
-        }
-        return modTime;
+        return path.lastModified();
     }
 
     @Override