Repository: hadoop Updated Branches: refs/heads/branch-2.8 e4b7f2404 -> 7f7a3c85c
MAPREDUCE-7133. History Server task attempts REST API returns invalid data. Contributed by Oleksandr Shevchenko (cherry picked from commit 2886024ac3a8613ecc27f1595b278ce6fc2d03ba) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7f7a3c85 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7f7a3c85 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7f7a3c85 Branch: refs/heads/branch-2.8 Commit: 7f7a3c85cc3a7a176d30294f3bf782e14aa96bcb Parents: e4b7f24 Author: Jason Lowe <[email protected]> Authored: Thu Sep 13 14:41:38 2018 -0500 Committer: Jason Lowe <[email protected]> Committed: Thu Sep 13 14:58:29 2018 -0500 ---------------------------------------------------------------------- .../hadoop/mapreduce/v2/app/webapp/dao/TaskAttemptsInfo.java | 8 +++++--- .../mapreduce/v2/app/webapp/TestAMWebServicesAttempts.java | 3 +++ .../src/site/markdown/MapredAppMasterRest.md | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/7f7a3c85/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/dao/TaskAttemptsInfo.java ---------------------------------------------------------------------- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/dao/TaskAttemptsInfo.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/dao/TaskAttemptsInfo.java index c92488f..6f188d9 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/dao/TaskAttemptsInfo.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/dao/TaskAttemptsInfo.java @@ -19,12 +19,10 @@ package org.apache.hadoop.mapreduce.v2.app.webapp.dao; import java.util.ArrayList; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "taskAttempts") -@XmlAccessorType(XmlAccessType.FIELD) public class TaskAttemptsInfo { protected ArrayList<TaskAttemptInfo> taskAttempt = new ArrayList<TaskAttemptInfo>(); @@ -36,6 +34,10 @@ public class TaskAttemptsInfo { taskAttempt.add(taskattemptInfo); } + // XmlElementRef annotation should be used to identify the exact type of a list element + // otherwise metadata will be added to XML attributes, + // it can lead to incorrect JSON marshaling + @XmlElementRef public ArrayList<TaskAttemptInfo> getTaskAttempts() { return taskAttempt; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/7f7a3c85/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebServicesAttempts.java ---------------------------------------------------------------------- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebServicesAttempts.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebServicesAttempts.java index 3c9127f..10b0e02 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebServicesAttempts.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebServicesAttempts.java @@ -20,6 +20,7 @@ package org.apache.hadoop.mapreduce.v2.app.webapp; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -477,6 +478,8 @@ public class TestAMWebServicesAttempts extends JerseyTest { Boolean found = false; for (int i = 0; i < nodes.getLength(); i++) { Element element = (Element) nodes.item(i); + assertFalse("task attempt should not contain any attributes, it can lead to incorrect JSON marshaling", + element.hasAttributes()); if (attid.matches(WebServicesTestUtils.getXmlString(element, "id"))) { found = true; http://git-wip-us.apache.org/repos/asf/hadoop/blob/7f7a3c85/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/site/markdown/MapredAppMasterRest.md ---------------------------------------------------------------------- diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/site/markdown/MapredAppMasterRest.md b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/site/markdown/MapredAppMasterRest.md index fcaea81..d311099 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/site/markdown/MapredAppMasterRest.md +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/site/markdown/MapredAppMasterRest.md @@ -1889,7 +1889,7 @@ Response Body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <taskAttempts> - <taskAttempt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="reduceTaskAttemptInfo"> + <taskAttempt> <startTime>1326238777460</startTime> <finishTime>0</finishTime> <elapsedTime>0</elapsedTime> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
