MAPREDUCE-5905. CountersStrings.toEscapedCompactStrings outputs unnecessary null strings. Contributed by Akira AJISAKA.
This commit is contained in:
parent
a319771d1d
commit
3ba18362f2
|
@ -359,6 +359,9 @@ Release 2.8.0 - UNRELEASED
|
|||
MAPREDUCE-6345. Documentation fix for when CRLA is enabled for MRAppMaster
|
||||
logs. (Rohit Agarwal via gera)
|
||||
|
||||
MAPREDUCE-5905. CountersStrings.toEscapedCompactStrings outputs
|
||||
unnecessary "null" strings. (Akira AJISAKA via ozawa)
|
||||
|
||||
Release 2.7.1 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -151,25 +151,12 @@ public class CountersStrings {
|
|||
public static <C extends Counter, G extends CounterGroupBase<C>,
|
||||
T extends AbstractCounters<C, G>>
|
||||
String toEscapedCompactString(T counters) {
|
||||
String[] groupsArray;
|
||||
int length = 0;
|
||||
StringBuilder builder = new StringBuilder();
|
||||
synchronized(counters) {
|
||||
groupsArray = new String[counters.countCounters()];
|
||||
int i = 0;
|
||||
// First up, obtain the escaped string for each group so that we can
|
||||
// determine the buffer length apriori.
|
||||
for (G group : counters) {
|
||||
String escapedString = toEscapedCompactString(group);
|
||||
groupsArray[i++] = escapedString;
|
||||
length += escapedString.length();
|
||||
builder.append(toEscapedCompactString(group));
|
||||
}
|
||||
}
|
||||
|
||||
// Now construct the buffer
|
||||
StringBuilder builder = new StringBuilder(length);
|
||||
for (String group : groupsArray) {
|
||||
builder.append(group);
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
package org.apache.hadoop.mapred;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -84,6 +85,8 @@ public class TestCounters {
|
|||
*/
|
||||
private void testCounter(Counters counter) throws ParseException {
|
||||
String compactEscapedString = counter.makeEscapedCompactString();
|
||||
assertFalse("compactEscapedString should not contain null",
|
||||
compactEscapedString.contains("null"));
|
||||
|
||||
Counters recoveredCounter =
|
||||
Counters.fromEscapedCompactString(compactEscapedString);
|
||||
|
|
Loading…
Reference in New Issue