From cc17c83585f581d56e7c42b91464cd7a99e8cf90 Mon Sep 17 00:00:00 2001 From: "Robert (Bobby) Evans" Date: Fri, 8 May 2015 11:56:59 -0500 Subject: [PATCH] HADOOP-6842. "hadoop fs -text" does not give a useful text representation of MapWritable objects --- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../main/java/org/apache/hadoop/io/MapWritable.java | 5 +++++ .../java/org/apache/hadoop/io/TestMapWritable.java | 11 ++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index f4b9246f37..432c6b6e12 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -479,6 +479,9 @@ Release 2.8.0 - UNRELEASED IMPROVEMENTS + HADOOP-6842. "hadoop fs -text" does not give a useful text representation + of MapWritable objects (Akira Ajisaka via bobby) + HADOOP-11719. [Fsshell] Remove bin/hadoop reference from GenericOptionsParser default help text. (Brahma Reddy Battula via harsh) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/MapWritable.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/MapWritable.java index fec168b831..0379ec2225 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/MapWritable.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/MapWritable.java @@ -189,4 +189,9 @@ public class MapWritable extends AbstractMapWritable instance.put(key, value); } } + + @Override + public String toString() { + return instance.toString(); + } } diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestMapWritable.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestMapWritable.java index 92849494ea..4597b909d9 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestMapWritable.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestMapWritable.java @@ -148,5 +148,14 @@ public class TestMapWritable extends TestCase { assertEquals(map1.hashCode(), map2.hashCode()); assertFalse(map1.hashCode() == map3.hashCode()); -} + } + + /** Verify text command outputs a useful representation for MapWritable. */ + public void testToString() { + MapWritable map = new MapWritable(); + final IntWritable key = new IntWritable(5); + final Text value = new Text("value"); + map.put(key, value); + assertEquals("{5=value}", map.toString()); + } }