You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2017/09/11 08:21:01 UTC
[2/3] brooklyn-server git commit: Sync before close
Sync before close
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/c5cbc084
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/c5cbc084
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/c5cbc084
Branch: refs/heads/master
Commit: c5cbc0843d9635072d09379ed053968a2e670387
Parents: 9fe0179
Author: Geoff Macartney <ge...@cloudsoftcorp.com>
Authored: Fri Sep 8 10:21:25 2017 +0100
Committer: Geoff Macartney <ge...@cloudsoftcorp.com>
Committed: Fri Sep 8 10:21:25 2017 +0100
----------------------------------------------------------------------
.../core/mgmt/persist/FileBasedStoreObjectAccessor.java | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/c5cbc084/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
index 6a3de10..9387fe3 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/FileBasedStoreObjectAccessor.java
@@ -22,6 +22,7 @@ import java.io.File;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.SyncFailedException;
import java.util.Date;
@@ -90,8 +91,15 @@ public class FileBasedStoreObjectAccessor implements PersistenceObjectStore.Stor
try {
FileUtil.setFilePermissionsTo600(tmpFile);
final FileOutputStream tempStream = new FileOutputStream(tmpFile);
- Streams.copyClose(bytes.openStream(), tempStream);
- syncFileSystem(tempStream.getFD());
+ final InputStream byteStream = bytes.openStream();
+ try {
+ Streams.copy(byteStream, tempStream);
+ syncFileSystem(tempStream.getFD());
+ } finally {
+ Streams.closeQuietly(byteStream);
+ Streams.closeQuietly(tempStream);
+ }
+
FileBasedObjectStore.moveFile(tmpFile, file);
} catch (IOException e) {
throw Exceptions.propagateAnnotated("Problem writing data to file "+file+" (via temporary file "+tmpFile+")", e);