Sorry, false negative. The patch process is catching up on today's
patches and this one has already been committed.
On Jan 22, 2007, at 9:38 PM, Hadoop QA (JIRA) wrote:
[ https://issues.apache.org/jira/browse/HADOOP-901?
page=com.atlassian.jira.plugin.system.issuetabpanels:comment-
tabpanel#action_12466647 ]
Hadoop QA commented on HADOOP-901:
----------------------------------
-1, because the patch command could not apply the latest attachment
(http://issues.apache.org/jira/secure/attachment/12349348/
hadoop-901.patch) as a patch to trunk revision r498829. Please note
that this message is automatically generated and may represent a
problem with the automation system and not the patch.
Make S3FileSystem do recursive renames
--------------------------------------
Key: HADOOP-901
URL: https://issues.apache.org/jira/browse/HADOOP-901
Project: Hadoop
Issue Type: Bug
Components: fs
Affects Versions: 0.10.1
Reporter: Tom White
Fix For: 0.11.0
Attachments: hadoop-901.patch
From Mike Smith:
I went through the S3FileSystem.java codes and fixed the renameRaw
() method.
Now, it iterates through the folders recursively and rename those.
Also, in
the case of existing destination folder, it moves the src folder
under the
dst folder.
Here is the piece code that should be replaced in S3FileSystem.java.
renameRaw() method should be replaced by the following methods:
@Override
public boolean renameRaw(Path src, Path dst) throws IOException {
Path absoluteDst = makeAbsolute(dst);
Path absoluteSrc = makeAbsolute(src);
INode inode = store.getINode(absoluteDst);
// checking to see of dst folder exist. In this case moves the
// src folder under the existing path.
if (inode != null && inode.isDirectory()) {
Path newDst = new Path(absoluteDst.toString
()+"/"+absoluteSrc.getName());
return renameRaw(src,newDst,src);
} else {
// if the dst folder does not exist, then the dst folder will be
created.
return renameRaw(src,dst,src);
}
}
// recursively goes through all the subfolders and rename those.
public boolean renameRaw(Path src, Path dst,Path orgSrc) throws
IOException {
Path absoluteSrc = makeAbsolute(src);
Path newDst = new Path(src.toString().replaceFirst
(orgSrc.toString(),
dst.toString()));
Path absoluteDst = makeAbsolute(newDst);
LOG.info(absoluteSrc.toString());
INode inode = store.getINode (absoluteSrc);
if (inode == null) {
return false;
}
if (inode.isFile()) {
store.storeINode(makeAbsolute(absoluteDst), inode);
} else {
store.storeINode (makeAbsolute(absoluteDst), inode);
Path[] contents = listPathsRaw(absoluteSrc);
if (contents == null) {
return false;
}
for (Path p : contents) {
if (! renameRaw(p,dst,orgSrc)) {
return false;
}
}
}
store.deleteINode(absoluteSrc);
return true;
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.