diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateRequestPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateRequestPBImpl.java index 723ab5c..41bbaa7 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateRequestPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateRequestPBImpl.java @@ -145,12 +145,10 @@ public void setProgress(float progress) { @Override public void setAskList(final List resourceRequests) { - if(resourceRequests == null) { - return; - } - initAsks(); - this.ask.clear(); - this.ask.addAll(resourceRequests); + maybeInitBuilder(); + if (resourceRequests == null) + builder.clearAsk(); + this.ask = resourceRequests; } @Override @@ -228,12 +226,10 @@ public void remove() { } @Override public void setReleaseList(List releaseContainers) { - if(releaseContainers == null) { - return; - } - initReleases(); - this.release.clear(); - this.release.addAll(releaseContainers); + maybeInitBuilder(); + if (releaseContainers == null) + builder.clearRelease(); + this.release = releaseContainers; } private void initReleases() { diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java index f38f91e..ca23870 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/AllocateResponsePBImpl.java @@ -210,12 +210,10 @@ public synchronized void setAvailableResources(Resource limit) { @Override public synchronized void setUpdatedNodes( final List updatedNodes) { - if (updatedNodes == null) { - this.updatedNodes.clear(); - return; - } - this.updatedNodes = new ArrayList(updatedNodes.size()); - this.updatedNodes.addAll(updatedNodes); + maybeInitBuilder(); + if (updatedNodes == null) + builder.clearUpdatedNodes(); + this.updatedNodes = updatedNodes; } @Override @@ -227,11 +225,10 @@ public synchronized void setUpdatedNodes( @Override public synchronized void setAllocatedContainers( final List containers) { + maybeInitBuilder(); if (containers == null) - return; - // this looks like a bug because it results in append and not set - initLocalNewContainerList(); - allocatedContainers.addAll(containers); + builder.clearAllocatedContainers(); + this.allocatedContainers = containers; } //// Finished containers @@ -244,24 +241,19 @@ public synchronized void setAllocatedContainers( @Override public synchronized void setCompletedContainersStatuses( final List containers) { + maybeInitBuilder(); if (containers == null) - return; - initLocalFinishedContainerList(); - completedContainersStatuses.addAll(containers); + builder.clearCompletedContainerStatuses(); + this.completedContainersStatuses = containers; } @Override public synchronized void setNMTokens(List nmTokens) { - if (nmTokens == null || nmTokens.isEmpty()) { - if (this.nmTokens != null) { - this.nmTokens.clear(); - } + maybeInitBuilder(); + if (nmTokens == null) { builder.clearNmTokens(); - return; } - // Implementing it as an append rather than set for consistency - initLocalNewNMTokenList(); - this.nmTokens.addAll(nmTokens); + this.nmTokens = nmTokens; } @Override diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java index 23210d4..1ea99b3 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesResponsePBImpl.java @@ -59,6 +59,7 @@ public GetClusterNodesResponsePBImpl(GetClusterNodesResponseProto proto) { @Override public void setNodeReports(List nodeManagers) { + maybeInitBuilder(); if (nodeManagers == null) { builder.clearNodeReports(); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetQueueUserAclsInfoResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetQueueUserAclsInfoResponsePBImpl.java index d9fdada..bbd87c1 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetQueueUserAclsInfoResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetQueueUserAclsInfoResponsePBImpl.java @@ -60,6 +60,7 @@ public GetQueueUserAclsInfoResponsePBImpl( @Override public void setUserAclsInfoList(List queueUserAclsList) { + maybeInitBuilder(); if (queueUserAclsList == null) { builder.clearQueueUserAcls(); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java index 75ce200..2a4dae4 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/RegisterApplicationMasterResponsePBImpl.java @@ -201,11 +201,10 @@ public void remove() { @Override public void setApplicationACLs( final Map appACLs) { + maybeInitBuilder(); if (appACLs == null) - return; - initApplicationACLs(); - this.applicationACLS.clear(); - this.applicationACLS.putAll(appACLs); + builder.clearApplicationACLs(); + this.applicationACLS = appACLs; } @Override diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java index 8edbfa7..6850103 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainerResponsePBImpl.java @@ -119,12 +119,11 @@ private synchronized void maybeInitBuilder() { @Override public synchronized void setAllServicesMetaData( Map servicesMetaData) { + maybeInitBuilder(); if(servicesMetaData == null) { - return; + builder.clearServicesMetaData(); } - initServicesMetaData(); - this.servicesMetaData.clear(); - this.servicesMetaData.putAll(servicesMetaData); + this.servicesMetaData = servicesMetaData; } private synchronized void initServicesMetaData() { diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerLaunchContextPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerLaunchContextPBImpl.java index 02e0d3b..da62621 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerLaunchContextPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ContainerLaunchContextPBImpl.java @@ -157,11 +157,10 @@ private void initCommands() { @Override public void setCommands(final List commands) { + maybeInitBuilder(); if (commands == null) - return; - initCommands(); - this.commands.clear(); - this.commands.addAll(commands); + builder.clearCommand(); + this.commands = commands; } private void addCommandsToProto() { @@ -194,11 +193,10 @@ private void initLocalResources() { @Override public void setLocalResources( final Map localResources) { + maybeInitBuilder(); if (localResources == null) - return; - initLocalResources(); - this.localResources.clear(); - this.localResources.putAll(localResources); + builder.clearLocalResources(); + this.localResources = localResources; } private void addLocalResourcesToProto() { @@ -280,10 +278,10 @@ private void initServiceData() { @Override public void setServiceData(final Map serviceData) { + maybeInitBuilder(); if (serviceData == null) - return; - initServiceData(); - this.serviceData.putAll(serviceData); + builder.clearServiceData(); + this.serviceData = serviceData; } private void addServiceDataToProto() { @@ -343,11 +341,10 @@ private void initEnv() { @Override public void setEnvironment(final Map env) { + maybeInitBuilder(); if (env == null) - return; - initEnv(); - this.environment.clear(); - this.environment.putAll(env); + builder.clearEnvironment(); + this.environment = env; } private void addEnvToProto() { @@ -448,11 +445,10 @@ public void remove() { @Override public void setApplicationACLs( final Map appACLs) { + maybeInitBuilder(); if (appACLs == null) - return; - initApplicationACLs(); - this.applicationACLS.clear(); - this.applicationACLS.putAll(appACLs); + builder.clearApplicationACLs(); + this.applicationACLS = appACLs; } private LocalResourcePBImpl convertFromProtoFormat(LocalResourceProto p) { diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/PreemptionContractPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/PreemptionContractPBImpl.java index 07a0af9..913d1dc 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/PreemptionContractPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/PreemptionContractPBImpl.java @@ -113,6 +113,7 @@ private void maybeInitBuilder() { @Override public synchronized void setContainers( final Set containers) { + maybeInitBuilder(); if (null == containers) { builder.clearContainer(); } @@ -128,6 +129,7 @@ public synchronized void setContainers( @Override public synchronized void setResourceRequest( final List req) { + maybeInitBuilder(); if (null == resources) { builder.clearResource(); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/QueueInfoPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/QueueInfoPBImpl.java index 529bd8b..7e8f733 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/QueueInfoPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/QueueInfoPBImpl.java @@ -99,6 +99,7 @@ public QueueState getQueueState() { @Override public void setApplications(List applications) { + maybeInitBuilder(); if (applications == null) { builder.clearApplications(); } @@ -113,6 +114,7 @@ public void setCapacity(float capacity) { @Override public void setChildQueues(List childQueues) { + maybeInitBuilder(); if (childQueues == null) { builder.clearChildQueues(); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/QueueUserACLInfoPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/QueueUserACLInfoPBImpl.java index cf48410..7d02490 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/QueueUserACLInfoPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/QueueUserACLInfoPBImpl.java @@ -73,6 +73,7 @@ public void setQueueName(String queueName) { @Override public void setUserAcls(List userAclsList) { + maybeInitBuilder(); if (userAclsList == null) { builder.clearUserAcls(); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceBlacklistRequestPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceBlacklistRequestPBImpl.java index 96cb139..6e5f08c 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceBlacklistRequestPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourceBlacklistRequestPBImpl.java @@ -125,15 +125,10 @@ private void initBlacklistRemovals() { @Override public void setBlacklistAdditions(List resourceNames) { - if (resourceNames == null) { - if (this.blacklistAdditions != null) { - this.blacklistAdditions.clear(); - } - return; - } - initBlacklistAdditions(); - this.blacklistAdditions.clear(); - this.blacklistAdditions.addAll(resourceNames); + maybeInitBuilder(); + if (resourceNames == null) + builder.clearBlacklistAdditions(); + this.blacklistAdditions = resourceNames; } @Override @@ -144,15 +139,10 @@ public void setBlacklistAdditions(List resourceNames) { @Override public void setBlacklistRemovals(List resourceNames) { - if (resourceNames == null) { - if (this.blacklistRemovals != null) { - this.blacklistRemovals.clear(); - } - return; - } - initBlacklistRemovals(); - this.blacklistRemovals.clear(); - this.blacklistRemovals.addAll(resourceNames); + maybeInitBuilder(); + if (resourceNames == null) + builder.clearBlacklistRemovals(); + this.blacklistRemovals = resourceNames; } @Override