YARN-8548. AllocationRespose proto setNMToken initBuilder not done. Contributed by Bilwa S T.

(cherry picked from commit ff7c2eda34)
This commit is contained in:
bibinchundatt 2018-07-24 16:17:20 +05:30
parent 1a270e3b07
commit 1f713d6c66
2 changed files with 21 additions and 0 deletions

View File

@ -329,6 +329,7 @@ public class AllocateResponsePBImpl extends AllocateResponse {
@Override @Override
public synchronized void setNMTokens(List<NMToken> nmTokens) { public synchronized void setNMTokens(List<NMToken> nmTokens) {
maybeInitBuilder();
if (nmTokens == null || nmTokens.isEmpty()) { if (nmTokens == null || nmTokens.isEmpty()) {
if (this.nmTokens != null) { if (this.nmTokens != null) {
this.nmTokens.clear(); this.nmTokens.clear();

View File

@ -18,7 +18,15 @@
package org.apache.hadoop.yarn.server.resourcemanager.recovery; package org.apache.hadoop.yarn.server.resourcemanager.recovery;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.yarn.api.protocolrecords.impl.pb.AllocateResponsePBImpl;
import org.apache.hadoop.yarn.api.records.NMToken;
import org.apache.hadoop.yarn.proto.YarnServerResourceManagerRecoveryProtos.EpochProto; import org.apache.hadoop.yarn.proto.YarnServerResourceManagerRecoveryProtos.EpochProto;
import org.apache.hadoop.yarn.proto.YarnServiceProtos.AllocateResponseProto;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
@ -33,4 +41,16 @@ public class TestProtos {
String protoString = proto.toString(); String protoString = proto.toString();
Assert.assertNotNull(protoString); Assert.assertNotNull(protoString);
} }
@Test
public void testProtoAllocateResponse() {
AllocateResponseProto proto = AllocateResponseProto.getDefaultInstance();
AllocateResponsePBImpl alloc = new AllocateResponsePBImpl(proto);
List<NMToken> nmTokens = new ArrayList<NMToken>();
try {
alloc.setNMTokens(nmTokens);
} catch (Exception ex) {
fail();
}
}
} }