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/08/09 07:20:15 UTC
ignite git commit: IGNITE-3638: Implemented rename.
Repository: ignite
Updated Branches:
refs/heads/ignite-1926 1b67b9ce6 -> 427955bac
IGNITE-3638: Implemented rename.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/427955ba
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/427955ba
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/427955ba
Branch: refs/heads/ignite-1926
Commit: 427955bac52e2c6cedb5fa7eb429c14c503855e3
Parents: 1b67b9c
Author: tledkov-gridgain <tl...@gridgain.com>
Authored: Tue Aug 9 10:20:03 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Aug 9 10:20:03 2016 +0300
----------------------------------------------------------------------
.../hadoop/fs/LocalIgfsSecondaryFileSystem.java | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/427955ba/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/LocalIgfsSecondaryFileSystem.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/LocalIgfsSecondaryFileSystem.java b/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/LocalIgfsSecondaryFileSystem.java
index 1166564..537b2a4 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/LocalIgfsSecondaryFileSystem.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/hadoop/fs/LocalIgfsSecondaryFileSystem.java
@@ -17,6 +17,7 @@
package org.apache.ignite.hadoop.fs;
+import java.nio.file.Files;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.ParentNotDirectoryException;
@@ -202,15 +203,24 @@ public class LocalIgfsSecondaryFileSystem implements IgfsSecondaryFileSystem, Li
/** {@inheritDoc} */
@Override public void rename(IgfsPath src, IgfsPath dest) {
- // TODO: IGNITE-3638.
- // Delegate to the secondary file system.
try {
- if (!fileSystemForUser().rename(convert(src), convert(dest)))
+ File srcFile = fileForPath(src);
+ File destFile = fileForPath(dest);
+
+ if (!srcFile.exists())
+ throw new IOException("File not found: " + srcFile);
+
+ if (srcFile.isDirectory() && destFile.isFile())
+ throw new IOException("Failed rename directory to existing file: [src=" + src + ", dest=" + dest + ']');
+
+ if (destFile.isDirectory())
+ Files.move(srcFile.toPath(), destFile.toPath().resolve(srcFile.getName()));
+ else if(!srcFile.renameTo(destFile))
throw new IgfsException("Failed to rename (secondary file system returned false) " +
"[src=" + src + ", dest=" + dest + ']');
}
catch (IOException e) {
- throw handleSecondaryFsError(e, "Failed to rename file [src=" + src + ", dest=" + dest + ']');
+ throw handleSecondaryFsError(e, "Failed to rename [src=" + src + ", dest="+ dest + ']');
}
}