You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/06/14 07:17:04 UTC
[4/4] ignite git commit: IGNITE-3294: More reliable stream close.
IGNITE-3294: More reliable stream close.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/87237cee
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/87237cee
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/87237cee
Branch: refs/heads/ignite-3294
Commit: 87237ceef82e62d471bb90fd9553e36f19b74909
Parents: fbc5d96
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Jun 14 09:43:59 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Jun 14 09:43:59 2016 +0300
----------------------------------------------------------------------
.../processors/igfs/IgfsMetaManager.java | 30 ++++++++++++--------
.../processors/igfs/IgfsPathsCreateResult.java | 16 +----------
2 files changed, 19 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/87237cee/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
index a7f8336..c08d6a0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
@@ -1729,7 +1729,7 @@ public class IgfsMetaManager extends IgfsManager {
/**
* Transfer entry from one directory to another.
*
- * @param entry Entry to be transfered.
+ * @param entry Entry to be transferred.
* @param srcId Source ID.
* @param srcName Source name.
* @param destId Destination ID.
@@ -2806,6 +2806,8 @@ public class IgfsMetaManager extends IgfsManager {
while (true) {
if (busyLock.enterBusy()) {
+ OutputStream secondaryOut = null;
+
try {
// Prepare path IDs.
IgfsPathIds pathIds = pathIds(path);
@@ -2878,8 +2880,6 @@ public class IgfsMetaManager extends IgfsManager {
long newLen;
int newBlockSize;
- OutputStream secondaryOut = null;
-
if (secondaryCtx != null) {
secondaryOut = secondaryCtx.create();
@@ -2919,6 +2919,9 @@ public class IgfsMetaManager extends IgfsManager {
}
else {
// Create file and parent folders.
+ if (secondaryCtx != null)
+ secondaryOut = secondaryCtx.create();
+
IgfsPathsCreateResult res = createFile(pathIds, lockInfos, dirProps, fileProps, blockSize,
affKey, evictExclude, secondaryCtx);
@@ -2931,11 +2934,20 @@ public class IgfsMetaManager extends IgfsManager {
// Generate events.
generateCreateEvents(res.createdPaths(), true);
- // TODO: Set correct output stream.
- return new IgfsCreateResult(res.info(), res.secondaryOutputStream());
+ return new IgfsCreateResult(res.info(), secondaryOut);
}
}
}
+ catch (IgniteException | IgniteCheckedException e) {
+ U.closeQuiet(secondaryOut);
+
+ throw e;
+ }
+ catch (Exception e) {
+ U.closeQuiet(secondaryOut);
+
+ throw new IgniteCheckedException("Create failed due to unexpected exception: " + path, e);
+ }
finally {
busyLock.leaveBusy();
}
@@ -3026,12 +3038,6 @@ public class IgfsMetaManager extends IgfsManager {
if (lastExistingInfo.hasChild(curPart))
return null;
- // Invoke secondary file system if needed.
- OutputStream secondaryOut = null;
-
- if (secondaryCtx != null)
- secondaryOut = secondaryCtx.create();
-
Map<IgniteUuid, EntryProcessor> procMap = new HashMap<>();
// First step: add new entry to the last existing element.
@@ -3161,7 +3167,7 @@ public class IgfsMetaManager extends IgfsManager {
IgfsEntryInfo info = (IgfsEntryInfo)invokeRes.get(curId).get();
- return new IgfsPathsCreateResult(createdPaths, info, secondaryOut);
+ return new IgfsPathsCreateResult(createdPaths, info);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/87237cee/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsPathsCreateResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsPathsCreateResult.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsPathsCreateResult.java
index 5f53f37..bd13555 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsPathsCreateResult.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsPathsCreateResult.java
@@ -19,9 +19,7 @@ package org.apache.ignite.internal.processors.igfs;
import org.apache.ignite.igfs.IgfsPath;
import org.apache.ignite.internal.util.typedef.internal.S;
-import org.jetbrains.annotations.Nullable;
-import java.io.OutputStream;
import java.util.List;
/**
@@ -34,20 +32,15 @@ public class IgfsPathsCreateResult {
/** Info of the last created file. */
private final IgfsEntryInfo info;
- /** Secondary output stream. */
- private final OutputStream secondaryOut;
-
/**
* Constructor.
*
* @param paths Created paths.
* @param info Info of the last created file.
- * @param secondaryOut Secondary output stream.
*/
- public IgfsPathsCreateResult(List<IgfsPath> paths, IgfsEntryInfo info, @Nullable OutputStream secondaryOut) {
+ public IgfsPathsCreateResult(List<IgfsPath> paths, IgfsEntryInfo info) {
this.paths = paths;
this.info = info;
- this.secondaryOut = secondaryOut;
}
/**
@@ -64,13 +57,6 @@ public class IgfsPathsCreateResult {
return info;
}
- /**
- * @return Secondary output stream.
- */
- public OutputStream secondaryOutputStream() {
- return secondaryOut;
- }
-
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(IgfsPathsCreateResult.class, this);