Repository: hadoop
Updated Branches:
refs/heads/branch-2.6 95b870096 -> 783c99d29
refs/heads/branch-2.7 dd701c980 -> 62da8f6fa
HADOOP-7817. RawLocalFileSystem.append() should give FSDataOutputStream with
accurate .getPos() (Contributed by kanaka kumar avvaru)
(cherry picked from commit 48ca23def1d1c28448a65238814070e79c8f4c4e)
(cherry picked from commit d21bc811d82f685b0a1338bc513d9a925d305a17)
Conflicts:
hadoop-common-project/hadoop-common/CHANGES.txt
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/62da8f6f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/62da8f6f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/62da8f6f
Branch: refs/heads/branch-2.7
Commit: 62da8f6fa688b503ed124313bc2f6f664175d225
Parents: dd701c9
Author: Vinayakumar B <[email protected]>
Authored: Wed Jun 10 11:05:58 2015 +0530
Committer: Vinayakumar B <[email protected]>
Committed: Wed Apr 6 10:49:34 2016 +0800
----------------------------------------------------------------------
hadoop-common-project/hadoop-common/CHANGES.txt | 3 ++
.../apache/hadoop/fs/RawLocalFileSystem.java | 6 ++--
.../apache/hadoop/fs/TestLocalFileSystem.java | 34 ++++++++++++++++++++
3 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62da8f6f/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt
b/hadoop-common-project/hadoop-common/CHANGES.txt
index cf78f60..24ff1c0 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -918,6 +918,9 @@ Release 2.6.5 - UNRELEASED
HADOOP-12589. Fix intermittent test failure of TestCopyPreserveFlag
(iwasakims)
+ HADOOP-7817. RawLocalFileSystem.append() should give FSDataOutputStream
+ with accurate .getPos() (kanaka kumar avvaru via vinayakumarb)
+
Release 2.6.4 - 2016-02-11
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62da8f6f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
----------------------------------------------------------------------
diff --git
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
index 8dccf04..b1061ba 100644
---
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
+++
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
@@ -265,11 +265,13 @@ public class RawLocalFileSystem extends FileSystem {
if (!exists(f)) {
throw new FileNotFoundException("File " + f + " not found");
}
- if (getFileStatus(f).isDirectory()) {
+ FileStatus status = getFileStatus(f);
+ if (status.isDirectory()) {
throw new IOException("Cannot append to a diretory (=" + f + " )");
}
return new FSDataOutputStream(new BufferedOutputStream(
- createOutputStreamWithMode(f, true, null), bufferSize), statistics);
+ createOutputStreamWithMode(f, true, null), bufferSize), statistics,
+ status.getLen());
}
@Override
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62da8f6f/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
----------------------------------------------------------------------
diff --git
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
index ca78a8a..8946734 100644
---
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
+++
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
@@ -561,6 +561,40 @@ public class TestLocalFileSystem {
}
@Test
+ public void testAppendSetsPosCorrectly() throws Exception {
+ FileSystem fs = fileSys.getRawFileSystem();
+ Path file = new Path(TEST_ROOT_DIR, "test-append");
+
+ fs.delete(file, true);
+ FSDataOutputStream out = fs.create(file);
+
+ try {
+ out.write("text1".getBytes());
+ } finally {
+ out.close();
+ }
+
+ // Verify the position
+ out = fs.append(file);
+ try {
+ assertEquals(5, out.getPos());
+ out.write("text2".getBytes());
+ } finally {
+ out.close();
+ }
+
+ // Verify the content
+ FSDataInputStream in = fs.open(file);
+ try {
+ byte[] buf = new byte[in.available()];
+ in.readFully(buf);
+ assertEquals("text1text2", new String(buf));
+ } finally {
+ in.close();
+ }
+ }
+
+ @Test
public void testFileStatusPipeFile() throws Exception {
RawLocalFileSystem origFs = new RawLocalFileSystem();
RawLocalFileSystem fs = spy(origFs);