You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by je...@apache.org on 2020/01/10 16:53:05 UTC
[hadoop] branch branch-2.9 updated: HADOOP-16749. Configuration
parsing of CDATA values are blank
This is an automated email from the ASF dual-hosted git repository.
jeagles pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-2.9 by this push:
new bc53074 HADOOP-16749. Configuration parsing of CDATA values are blank
bc53074 is described below
commit bc530743b3cd3ef6876aa0a19607ebe8c0097e52
Author: Daryn Sharp <da...@apache.org>
AuthorDate: Fri Jan 10 10:48:45 2020 -0600
HADOOP-16749. Configuration parsing of CDATA values are blank
Signed-off-by: Jonathan Eagles <je...@gmail.com>
(cherry picked from commit 23a77050e08a8d57581da43fa8d6cd11ad8eaa0e)
---
.../java/org/apache/hadoop/conf/Configuration.java | 1 +
.../org/apache/hadoop/conf/TestConfiguration.java | 38 ++++++++++++++++++++++
2 files changed, 39 insertions(+)
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
index 9ee1baf..6601b23 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
@@ -2889,6 +2889,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
break;
case XMLStreamConstants.CHARACTERS:
+ case XMLStreamConstants.CDATA:
if (parseToken) {
char[] text = reader.getTextCharacters();
token.append(text, reader.getTextStart(), reader.getTextLength());
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
index 6fcff58..398f0aa 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
@@ -63,6 +63,7 @@ import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
import org.hamcrest.CoreMatchers;
import org.junit.Assert;
+import org.junit.Test;
import org.mockito.Mockito;
import static org.apache.hadoop.util.PlatformName.IBM_JAVA;
@@ -2095,4 +2096,41 @@ public class TestConfiguration extends TestCase {
TestConfiguration.class.getName()
});
}
+
+ @Test
+ public void testCDATA() throws IOException {
+ String xml = new String(
+ "<configuration>" +
+ "<property>" +
+ "<name>cdata</name>" +
+ "<value><![CDATA[>cdata]]></value>" +
+ "</property>\n" +
+ "<property>" +
+ "<name>cdata-multiple</name>" +
+ "<value><![CDATA[>cdata1]]> and <![CDATA[>cdata2]]></value>" +
+ "</property>\n" +
+ "<property>" +
+ "<name>cdata-multiline</name>" +
+ "<value><![CDATA[>cdata\nmultiline<>]]></value>" +
+ "</property>\n" +
+ "<property>" +
+ "<name>cdata-whitespace</name>" +
+ "<value> prefix <![CDATA[>cdata]]>\nsuffix </value>" +
+ "</property>\n" +
+ "</configuration>");
+ Configuration conf = checkCDATA(xml.getBytes());
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ conf.writeXml(os);
+ checkCDATA(os.toByteArray());
+ }
+
+ private static Configuration checkCDATA(byte[] bytes) {
+ Configuration conf = new Configuration(false);
+ conf.addResource(new ByteArrayInputStream(bytes));
+ assertEquals(">cdata", conf.get("cdata"));
+ assertEquals(">cdata1 and >cdata2", conf.get("cdata-multiple"));
+ assertEquals(">cdata\nmultiline<>", conf.get("cdata-multiline"));
+ assertEquals(" prefix >cdata\nsuffix ", conf.get("cdata-whitespace"));
+ return conf;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org