HADOOP-7174. Null is displayed in the "fs -copyToLocal" command. Contributed by Uma Maheswara Rao G
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1085043 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
06699c900a
commit
43e800e1ff
|
@ -601,6 +601,9 @@ Release 0.21.1 - Unreleased
|
||||||
HADOOP-7193. Correct the "fs -touchz" command help message.
|
HADOOP-7193. Correct the "fs -touchz" command help message.
|
||||||
(Uma Maheswara Rao G via szetszwo)
|
(Uma Maheswara Rao G via szetszwo)
|
||||||
|
|
||||||
|
HADOOP-7174. Null is displayed in the "fs -copyToLocal" command.
|
||||||
|
(Uma Maheswara Rao G via szetszwo)
|
||||||
|
|
||||||
Release 0.21.0 - 2010-08-13
|
Release 0.21.0 - 2010-08-13
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -195,6 +195,9 @@ public class FsShell extends Configured implements Tool {
|
||||||
copyCrc = false;
|
copyCrc = false;
|
||||||
}
|
}
|
||||||
FileStatus[] srcs = srcFS.globStatus(srcpath);
|
FileStatus[] srcs = srcFS.globStatus(srcpath);
|
||||||
|
if (null == srcs) {
|
||||||
|
throw new IOException(srcpath + ": No such file or directory");
|
||||||
|
}
|
||||||
boolean dstIsDir = dst.isDirectory();
|
boolean dstIsDir = dst.isDirectory();
|
||||||
if (srcs.length > 1 && !dstIsDir) {
|
if (srcs.length > 1 && !dstIsDir) {
|
||||||
throw new IOException("When copying multiple files, "
|
throw new IOException("When copying multiple files, "
|
||||||
|
|
|
@ -18,11 +18,15 @@
|
||||||
|
|
||||||
package org.apache.hadoop.fs;
|
package org.apache.hadoop.fs;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
|
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
|
import org.apache.hadoop.io.IOUtils;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
@ -237,4 +241,36 @@ public class TestFsShellReturnCode {
|
||||||
verify(fs, "-chgrp", argv4, 1, fsShell, 0);
|
verify(fs, "-chgrp", argv4, 1, fsShell, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetWithInvalidSourcePathShouldNotDisplayNullInConsole()
|
||||||
|
throws Exception {
|
||||||
|
Configuration conf = new Configuration();
|
||||||
|
FsShell shell = new FsShell();
|
||||||
|
shell.setConf(conf);
|
||||||
|
final ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||||
|
final PrintStream out = new PrintStream(bytes);
|
||||||
|
final PrintStream oldErr = System.err;
|
||||||
|
System.setErr(out);
|
||||||
|
final String results;
|
||||||
|
try {
|
||||||
|
FileSystem fileSys = FileSystem.getLocal(conf);
|
||||||
|
String[] args = new String[3];
|
||||||
|
args[0] = "-get";
|
||||||
|
args[1] = "/invalidPath";
|
||||||
|
args[2] = "/test/tmp";
|
||||||
|
assertTrue("file exists", !fileSys.exists(new Path(args[1])));
|
||||||
|
int run = shell.run(args);
|
||||||
|
results = bytes.toString();
|
||||||
|
assertTrue("Return code should be -1", run == -1);
|
||||||
|
assertTrue(" Null is coming when source path is invalid. ",!results.contains("get: null"));
|
||||||
|
assertTrue(" Not displaying the intended message ",results.contains("get: "+args[1]+": No such file or directory"));
|
||||||
|
} finally {
|
||||||
|
IOUtils.closeStream(out);
|
||||||
|
System.setErr(oldErr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue