From 1f713d6c66877bd687d785d496bd50a5b44b0a72 Mon Sep 17 00:00:00 2001 From: bibinchundatt Date: Tue, 24 Jul 2018 16:17:20 +0530 Subject: [PATCH] YARN-8548. AllocationRespose proto setNMToken initBuilder not done. Contributed by Bilwa S T. (cherry picked from commit ff7c2eda34c2c40ad71b50df6462a661bd213fbd) --- .../impl/pb/AllocateResponsePBImpl.java | 1 + .../resourcemanager/recovery/TestProtos.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java index ff35da81eb0..33d6c100969 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java @@ -329,6 +329,7 @@ public class AllocateResponsePBImpl extends AllocateResponse { @Override public synchronized void setNMTokens(List nmTokens) { + maybeInitBuilder(); if (nmTokens == null || nmTokens.isEmpty()) { if (this.nmTokens != null) { this.nmTokens.clear(); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestProtos.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestProtos.java index cc964120689..d42b411a858 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestProtos.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestProtos.java @@ -18,7 +18,15 @@ 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.YarnServiceProtos.AllocateResponseProto; import org.junit.Assert; import org.junit.Test; @@ -33,4 +41,16 @@ public class TestProtos { String protoString = proto.toString(); Assert.assertNotNull(protoString); } + + @Test + public void testProtoAllocateResponse() { + AllocateResponseProto proto = AllocateResponseProto.getDefaultInstance(); + AllocateResponsePBImpl alloc = new AllocateResponsePBImpl(proto); + List nmTokens = new ArrayList(); + try { + alloc.setNMTokens(nmTokens); + } catch (Exception ex) { + fail(); + } + } }