diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageReconstructor.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageReconstructor.java index d102375563e..7d0a4924f13 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageReconstructor.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageReconstructor.java @@ -385,8 +385,8 @@ class OfflineImageReconstructor { break; case XMLEvent.CHARACTERS: String val = XMLUtils. - unmangleXmlString(ev.asCharacters().getData(), true); - parent.setVal(val); + unmangleXmlString(ev.asCharacters().getData(), false); + parent.setVal(parent.getVal() + val); events.nextEvent(); break; case XMLEvent.ATTRIBUTE: diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java index 7574cbf4df0..b8078049be3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java @@ -194,10 +194,15 @@ public class TestOfflineImageViewer { dirCount++; writtenFiles.put(emptydir.toString(), hdfs.getFileStatus(emptydir)); - //Create a directory whose name should be escaped in XML + //Create directories whose name should be escaped in XML Path invalidXMLDir = new Path("/dirContainingInvalidXMLChar\u0000here"); hdfs.mkdirs(invalidXMLDir); dirCount++; + Path entityRefXMLDir = new Path("/dirContainingEntityRef&here"); + hdfs.mkdirs(entityRefXMLDir); + dirCount++; + writtenFiles.put(entityRefXMLDir.toString(), + hdfs.getFileStatus(entityRefXMLDir)); //Create a directory with sticky bits Path stickyBitDir = new Path("/stickyBit");