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 bff252f..6dd156c 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 @@ -88,7 +88,7 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.ask != null) { addAsksToProto(); } @@ -140,19 +140,19 @@ public void setProgress(float progress) { } @Override - public List getAskList() { + public synchronized List getAskList() { initAsks(); return this.ask; } @Override - public void setAskList(final List resourceRequests) { + public synchronized void setAskList( + final List resourceRequests) { + maybeInitBuilder(); if(resourceRequests == null) { - return; + builder.clearAsk(); } - initAsks(); - this.ask.clear(); - this.ask.addAll(resourceRequests); + this.ask = resourceRequests; } @Override @@ -190,7 +190,7 @@ private void initAsks() { } } - private void addAsksToProto() { + private synchronized void addAsksToProto() { maybeInitBuilder(); builder.clearAsk(); if (ask == null) @@ -224,18 +224,17 @@ public void remove() { builder.addAllAsk(iterable); } @Override - public List getReleaseList() { + public synchronized List getReleaseList() { initReleases(); return this.release; } @Override - public void setReleaseList(List releaseContainers) { + public synchronized void setReleaseList(List releaseContainers) { + maybeInitBuilder(); if(releaseContainers == null) { - return; + builder.clearRelease(); } - initReleases(); - this.release.clear(); - this.release.addAll(releaseContainers); + this.release = releaseContainers; } private void initReleases() { @@ -251,7 +250,7 @@ private void initReleases() { } } - private void addReleasesToProto() { + private synchronized void addReleasesToProto() { maybeInitBuilder(); builder.clearRelease(); if (release == null) 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 37d5971..627b022 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 @@ -212,12 +212,11 @@ public synchronized void setAvailableResources(Resource limit) { @Override public synchronized void setUpdatedNodes( final List updatedNodes) { + maybeInitBuilder(); if (updatedNodes == null) { - this.updatedNodes.clear(); - return; + builder.clearUpdatedNodes(); } - this.updatedNodes = new ArrayList(updatedNodes.size()); - this.updatedNodes.addAll(updatedNodes); + this.updatedNodes = updatedNodes; } @Override @@ -229,11 +228,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 @@ -246,24 +244,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/GetApplicationsRequestPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsRequestPBImpl.java index 33f74f0..7f11303 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsRequestPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsRequestPBImpl.java @@ -54,14 +54,14 @@ public GetApplicationsRequestPBImpl(GetApplicationsRequestProto proto) { viaProto = true; } - public GetApplicationsRequestProto getProto() { + public synchronized GetApplicationsRequestProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; return proto; } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -69,7 +69,7 @@ private void mergeLocalToProto() { viaProto = true; } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.applicationTypes != null) { addLocalApplicationTypesToProto(); } @@ -109,7 +109,7 @@ public void remove() { } } - private void addLocalApplicationTypesToProto() { + private synchronized void addLocalApplicationTypesToProto() { maybeInitBuilder(); builder.clearApplicationTypes(); if (this.applicationTypes == null) @@ -117,7 +117,7 @@ private void addLocalApplicationTypesToProto() { builder.addAllApplicationTypes(applicationTypes); } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = GetApplicationsRequestProto.newBuilder(proto); } @@ -149,13 +149,13 @@ private void initApplicationStates() { } @Override - public Set getApplicationTypes() { + public synchronized Set getApplicationTypes() { initApplicationTypes(); return this.applicationTypes; } @Override - public void setApplicationTypes(Set applicationTypes) { + public synchronized void setApplicationTypes(Set applicationTypes) { maybeInitBuilder(); if (applicationTypes == null) builder.clearApplicationTypes(); @@ -163,13 +163,14 @@ public void setApplicationTypes(Set applicationTypes) { } @Override - public EnumSet getApplicationStates() { + public synchronized EnumSet getApplicationStates() { initApplicationStates(); return this.applicationStates; } @Override - public void setApplicationStates(EnumSet applicationStates) { + public synchronized void setApplicationStates( + EnumSet applicationStates) { maybeInitBuilder(); if (applicationStates == null) { builder.clearApplicationStates(); diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsResponsePBImpl.java index 453fc89..f2c9740 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetApplicationsResponsePBImpl.java @@ -55,20 +55,21 @@ public GetApplicationsResponsePBImpl(GetApplicationsResponseProto proto) { } @Override - public List getApplicationList() { + public synchronized List getApplicationList() { initLocalApplicationsList(); return this.applicationList; } @Override - public void setApplicationList(List applications) { + public synchronized void setApplicationList( + List applications) { maybeInitBuilder(); if (applications == null) builder.clearApplications(); this.applicationList = applications; } - public GetApplicationsResponseProto getProto() { + public synchronized GetApplicationsResponseProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -95,13 +96,13 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.applicationList != null) { addLocalApplicationsToProto(); } } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -109,7 +110,7 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = GetApplicationsResponseProto.newBuilder(proto); } @@ -131,7 +132,7 @@ private void initLocalApplicationsList() { } } - private void addLocalApplicationsToProto() { + private synchronized void addLocalApplicationsToProto() { maybeInitBuilder(); builder.clearApplications(); if (applicationList == null) diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java index 09c0fc7..5ee0242 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetClusterNodesRequestPBImpl.java @@ -60,19 +60,18 @@ public GetClusterNodesRequestProto getProto() { } @Override - public EnumSet getNodeStates() { + public synchronized EnumSet getNodeStates() { initNodeStates(); return this.states; } @Override - public void setNodeStates(final EnumSet states) { - initNodeStates(); - this.states.clear(); + public synchronized void setNodeStates(final EnumSet states) { + maybeInitBuilder(); if (states == null) { - return; + builder.clearNodeStates(); } - this.states.addAll(states); + this.states = states; } private void mergeLocalToProto() { @@ -91,7 +90,7 @@ private void maybeInitBuilder() { viaProto = false; } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.states != null) { maybeInitBuilder(); builder.clearNodeStates(); 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 04530e5..c39405b 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 @@ -54,20 +54,21 @@ public GetClusterNodesResponsePBImpl(GetClusterNodesResponseProto proto) { } @Override - public List getNodeReports() { + public synchronized List getNodeReports() { initLocalNodeManagerInfosList(); return this.nodeManagerInfoList; } @Override - public void setNodeReports(List nodeManagers) { + public synchronized void setNodeReports(List nodeManagers) { + maybeInitBuilder(); if (nodeManagers == null) { builder.clearNodeReports(); } this.nodeManagerInfoList = nodeManagers; } - public GetClusterNodesResponseProto getProto() { + public synchronized GetClusterNodesResponseProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -94,13 +95,13 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.nodeManagerInfoList != null) { addLocalNodeManagerInfosToProto(); } } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -108,7 +109,7 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = GetClusterNodesResponseProto.newBuilder(proto); } @@ -130,7 +131,7 @@ private void initLocalNodeManagerInfosList() { } } - private void addLocalNodeManagerInfosToProto() { + private synchronized void addLocalNodeManagerInfosToProto() { maybeInitBuilder(); builder.clearNodeReports(); if (nodeManagerInfoList == null) diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainerStatusesRequestPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainerStatusesRequestPBImpl.java index bbc1492..4d4bfe8 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainerStatusesRequestPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainerStatusesRequestPBImpl.java @@ -53,7 +53,7 @@ public GetContainerStatusesRequestPBImpl( viaProto = true; } - public GetContainerStatusesRequestProto getProto() { + public synchronized GetContainerStatusesRequestProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -80,13 +80,13 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.containerIds != null) { addLocalContainerIdsToProto(); } } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -94,14 +94,14 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = GetContainerStatusesRequestProto.newBuilder(proto); } viaProto = false; } - private void addLocalContainerIdsToProto() { + private synchronized void addLocalContainerIdsToProto() { maybeInitBuilder(); builder.clearContainerId(); if (this.containerIds == null) @@ -126,13 +126,13 @@ private void initLocalContainerIds() { } @Override - public List getContainerIds() { + public synchronized List getContainerIds() { initLocalContainerIds(); return this.containerIds; } @Override - public void setContainerIds(List containerIds) { + public synchronized void setContainerIds(List containerIds) { maybeInitBuilder(); if (containerIds == null) builder.clearContainerId(); diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainerStatusesResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainerStatusesResponsePBImpl.java index fb8885b..6d8b8bf 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainerStatusesResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/GetContainerStatusesResponsePBImpl.java @@ -63,7 +63,7 @@ public GetContainerStatusesResponsePBImpl( viaProto = true; } - public GetContainerStatusesResponseProto getProto() { + public synchronized GetContainerStatusesResponseProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -90,7 +90,7 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.containerStatuses != null) { addLocalContainerStatusesToProto(); } @@ -99,7 +99,7 @@ private void mergeLocalToBuilder() { } } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -107,14 +107,14 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = GetContainerStatusesResponseProto.newBuilder(proto); } viaProto = false; } - private void addLocalContainerStatusesToProto() { + private synchronized void addLocalContainerStatusesToProto() { maybeInitBuilder(); builder.clearStatus(); if (this.containerStatuses == null) @@ -127,7 +127,7 @@ private void addLocalContainerStatusesToProto() { builder.addAllStatus(protoList); } - private void addFailedRequestsToProto() { + private synchronized void addFailedRequestsToProto() { maybeInitBuilder(); builder.clearFailedRequests(); if (this.failedRequests == null) @@ -169,13 +169,13 @@ private void initFailedRequests() { } @Override - public List getContainerStatuses() { + public synchronized List getContainerStatuses() { initLocalContainerStatuses(); return this.containerStatuses; } @Override - public void setContainerStatuses(List statuses) { + public synchronized void setContainerStatuses(List statuses) { maybeInitBuilder(); if (statuses == null) builder.clearStatus(); @@ -183,13 +183,13 @@ public void setContainerStatuses(List statuses) { } @Override - public Map getFailedRequests() { + public synchronized Map getFailedRequests() { initFailedRequests(); return this.failedRequests; } @Override - public void setFailedRequests( + public synchronized void setFailedRequests( Map failedRequests) { maybeInitBuilder(); if (failedRequests == null) 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 8d405d9..e8898a5 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 @@ -55,20 +55,22 @@ public GetQueueUserAclsInfoResponsePBImpl( } @Override - public List getUserAclsInfoList() { + public synchronized List getUserAclsInfoList() { initLocalQueueUserAclsList(); return queueUserAclsInfoList; } @Override - public void setUserAclsInfoList(List queueUserAclsList) { + public synchronized void setUserAclsInfoList( + List queueUserAclsList) { + maybeInitBuilder(); if (queueUserAclsList == null) { builder.clearQueueUserAcls(); } this.queueUserAclsInfoList = queueUserAclsList; } - public GetQueueUserAclsInfoResponseProto getProto() { + public synchronized GetQueueUserAclsInfoResponseProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -95,13 +97,13 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.queueUserAclsInfoList != null) { addLocalQueueUserACLInfosToProto(); } } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -109,7 +111,7 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = GetQueueUserAclsInfoResponseProto.newBuilder(proto); } @@ -131,7 +133,7 @@ private void initLocalQueueUserAclsList() { } } - private void addLocalQueueUserACLInfosToProto() { + private synchronized void addLocalQueueUserACLInfosToProto() { maybeInitBuilder(); builder.clearQueueUserAcls(); if (queueUserAclsInfoList == null) 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 486304c..7233d71 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 @@ -97,7 +97,7 @@ private void mergeLocalToProto() { viaProto = true; } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.maximumResourceCapability != null) { builder.setMaximumCapability( convertToProtoFormat(this.maximumResourceCapability)); @@ -140,7 +140,7 @@ public void setMaximumResourceCapability(Resource capability) { } @Override - public Map getApplicationACLs() { + public synchronized Map getApplicationACLs() { initApplicationACLs(); return this.applicationACLS; } @@ -161,7 +161,7 @@ private void initApplicationACLs() { } } - private void addApplicationACLs() { + private synchronized void addApplicationACLs() { maybeInitBuilder(); builder.clearApplicationACLs(); if (applicationACLS == null) { @@ -200,13 +200,12 @@ public void remove() { } @Override - public void setApplicationACLs( + public synchronized 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/StartContainersRequestPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainersRequestPBImpl.java index 2233705..3e88e59 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainersRequestPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainersRequestPBImpl.java @@ -44,7 +44,7 @@ public StartContainersRequestPBImpl(StartContainersRequestProto proto) { viaProto = true; } - public StartContainersRequestProto getProto() { + public synchronized StartContainersRequestProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -66,7 +66,7 @@ public boolean equals(Object other) { return false; } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -74,21 +74,21 @@ private void mergeLocalToProto() { viaProto = true; } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (requests != null) { addLocalRequestsToProto(); } } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = StartContainersRequestProto.newBuilder(proto); } viaProto = false; } - private void addLocalRequestsToProto() { + private synchronized void addLocalRequestsToProto() { maybeInitBuilder(); builder.clearStartContainerRequest(); List protoList = @@ -110,7 +110,8 @@ private void initLocalRequests() { } @Override - public void setStartContainerRequests(List requests) { + public synchronized void setStartContainerRequests( + List requests) { maybeInitBuilder(); if (requests == null) { builder.clearStartContainerRequest(); @@ -119,7 +120,7 @@ public void setStartContainerRequests(List requests) { } @Override - public List getStartContainerRequests() { + public synchronized List getStartContainerRequests() { if (this.requests != null) { return this.requests; } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainersResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainersResponsePBImpl.java index 8f5c740..8cb4cdd 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainersResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StartContainersResponsePBImpl.java @@ -64,7 +64,7 @@ public StartContainersResponsePBImpl(StartContainersResponseProto proto) { viaProto = true; } - public StartContainersResponseProto getProto() { + public synchronized StartContainersResponseProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -91,7 +91,7 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.servicesMetaData != null) { addServicesMetaDataToProto(); } @@ -128,7 +128,7 @@ private SerializedExceptionProto convertToProtoFormat(SerializedException t) { return ((SerializedExceptionPBImpl) t).getProto(); } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) { maybeInitBuilder(); } @@ -137,7 +137,7 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = StartContainersResponseProto.newBuilder(proto); } @@ -145,19 +145,19 @@ private void maybeInitBuilder() { } @Override - public Map getAllServicesMetaData() { + public synchronized Map getAllServicesMetaData() { initServicesMetaData(); return this.servicesMetaData; } @Override - public void setAllServicesMetaData(Map servicesMetaData) { + 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 void initServicesMetaData() { @@ -174,7 +174,7 @@ private void initServicesMetaData() { } } - private void addServicesMetaDataToProto() { + private synchronized void addServicesMetaDataToProto() { maybeInitBuilder(); builder.clearServicesMetaData(); if (servicesMetaData == null) @@ -211,7 +211,7 @@ public boolean hasNext() { builder.addAllServicesMetaData(iterable); } - private void addFailedContainersToProto() { + private synchronized void addFailedContainersToProto() { maybeInitBuilder(); builder.clearFailedRequests(); if (this.failedContainers == null) @@ -228,7 +228,7 @@ private void addFailedContainersToProto() { builder.addAllFailedRequests(protoList); } - private void addSucceededContainersToProto() { + private synchronized void addSucceededContainersToProto() { maybeInitBuilder(); builder.clearSucceededRequests(); if (this.succeededContainers == null) { @@ -274,13 +274,13 @@ private void initSucceededContainers() { } @Override - public List getSuccessfullyStartedContainers() { + public synchronized List getSuccessfullyStartedContainers() { initSucceededContainers(); return this.succeededContainers; } @Override - public void setSuccessfullyStartedContainers( + public synchronized void setSuccessfullyStartedContainers( List succeededContainers) { maybeInitBuilder(); if (succeededContainers == null) { @@ -303,13 +303,13 @@ private void initFailedContainers() { } @Override - public Map getFailedRequests() { + public synchronized Map getFailedRequests() { initFailedContainers(); return this.failedContainers; } @Override - public void setFailedRequests( + public synchronized void setFailedRequests( Map failedContainers) { maybeInitBuilder(); if (failedContainers == null) diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StopContainersRequestPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StopContainersRequestPBImpl.java index 27e092b..95bf177 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StopContainersRequestPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StopContainersRequestPBImpl.java @@ -51,7 +51,7 @@ public StopContainersRequestPBImpl(StopContainersRequestProto proto) { viaProto = true; } - public StopContainersRequestProto getProto() { + public synchronized StopContainersRequestProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -78,13 +78,13 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.containerIds != null) { addLocalContainerIdsToProto(); } } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -92,14 +92,14 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = StopContainersRequestProto.newBuilder(proto); } viaProto = false; } - private void addLocalContainerIdsToProto() { + private synchronized void addLocalContainerIdsToProto() { maybeInitBuilder(); builder.clearContainerId(); if (this.containerIds == null) @@ -124,13 +124,13 @@ private void initLocalContainerIds() { } @Override - public List getContainerIds() { + public synchronized List getContainerIds() { initLocalContainerIds(); return this.containerIds; } @Override - public void setContainerIds(List containerIds) { + public synchronized void setContainerIds(List containerIds) { maybeInitBuilder(); if (containerIds == null) builder.clearContainerId(); diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StopContainersResponsePBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StopContainersResponsePBImpl.java index dd28b06..c84060b 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StopContainersResponsePBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/StopContainersResponsePBImpl.java @@ -58,7 +58,7 @@ public StopContainersResponsePBImpl(StopContainersResponseProto proto) { viaProto = true; } - public StopContainersResponseProto getProto() { + public synchronized StopContainersResponseProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -85,7 +85,7 @@ public String toString() { return TextFormat.shortDebugString(getProto()); } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) { maybeInitBuilder(); } @@ -94,14 +94,14 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = StopContainersResponseProto.newBuilder(proto); } viaProto = false; } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.succeededRequests != null) { addSucceededRequestsToProto(); @@ -111,7 +111,7 @@ private void mergeLocalToBuilder() { } } - private void addSucceededRequestsToProto() { + private synchronized void addSucceededRequestsToProto() { maybeInitBuilder(); builder.clearSucceededRequests(); if (this.succeededRequests == null) { @@ -145,7 +145,7 @@ public void remove() { builder.addAllSucceededRequests(iterable); } - private void addFailedRequestsToProto() { + private synchronized void addFailedRequestsToProto() { maybeInitBuilder(); builder.clearFailedRequests(); if (this.failedRequests == null) @@ -187,13 +187,14 @@ private void initFailedRequests() { } @Override - public List getSuccessfullyStoppedContainers() { + public synchronized List getSuccessfullyStoppedContainers() { initSucceededRequests(); return this.succeededRequests; } @Override - public void setSuccessfullyStoppedContainers(List succeededRequests) { + public synchronized void setSuccessfullyStoppedContainers( + List succeededRequests) { maybeInitBuilder(); if (succeededRequests == null) { builder.clearSucceededRequests(); @@ -202,13 +203,13 @@ public void setSuccessfullyStoppedContainers(List succeededRequests } @Override - public Map getFailedRequests() { + public synchronized Map getFailedRequests() { initFailedRequests(); return this.failedRequests; } @Override - public void setFailedRequests( + public synchronized void setFailedRequests( Map failedRequests) { maybeInitBuilder(); if (failedRequests == null) 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 12dcfcd..755c94a 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 @@ -66,7 +66,7 @@ public ContainerLaunchContextPBImpl(ContainerLaunchContextProto proto) { viaProto = true; } - public ContainerLaunchContextProto getProto() { + public synchronized ContainerLaunchContextProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; @@ -101,7 +101,7 @@ protected final ByteString convertToProtoFormat(ByteBuffer byteBuffer) { return ProtoUtils.convertToProtoFormat(byteBuffer); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.localResources != null) { addLocalResourcesToProto(); } @@ -122,7 +122,7 @@ private void mergeLocalToBuilder() { } } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) maybeInitBuilder(); mergeLocalToBuilder(); @@ -130,7 +130,7 @@ private void mergeLocalToProto() { viaProto = true; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = ContainerLaunchContextProto.newBuilder(proto); } @@ -138,7 +138,7 @@ private void maybeInitBuilder() { } @Override - public List getCommands() { + public synchronized List getCommands() { initCommands(); return this.commands; } @@ -157,15 +157,14 @@ private void initCommands() { } @Override - public void setCommands(final List commands) { + public synchronized 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() { + private synchronized void addCommandsToProto() { maybeInitBuilder(); builder.clearCommand(); if (this.commands == null) @@ -174,7 +173,7 @@ private void addCommandsToProto() { } @Override - public Map getLocalResources() { + public synchronized Map getLocalResources() { initLocalResources(); return this.localResources; } @@ -193,16 +192,15 @@ private void initLocalResources() { } @Override - public void setLocalResources( + public synchronized 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() { + private synchronized void addLocalResourcesToProto() { maybeInitBuilder(); builder.clearLocalResources(); if (localResources == null) @@ -239,7 +237,7 @@ public boolean hasNext() { } @Override - public ByteBuffer getTokens() { + public synchronized ByteBuffer getTokens() { ContainerLaunchContextProtoOrBuilder p = viaProto ? proto : builder; if (this.tokens != null) { return this.tokens; @@ -252,7 +250,7 @@ public ByteBuffer getTokens() { } @Override - public void setTokens(ByteBuffer tokens) { + public synchronized void setTokens(ByteBuffer tokens) { maybeInitBuilder(); if (tokens == null) { builder.clearTokens(); @@ -261,7 +259,7 @@ public void setTokens(ByteBuffer tokens) { } @Override - public Map getServiceData() { + public synchronized Map getServiceData() { initServiceData(); return this.serviceData; } @@ -280,14 +278,15 @@ private void initServiceData() { } @Override - public void setServiceData(final Map serviceData) { + public synchronized void setServiceData( + final Map serviceData) { + maybeInitBuilder(); if (serviceData == null) - return; - initServiceData(); - this.serviceData.putAll(serviceData); + builder.clearServiceData(); + this.serviceData = serviceData; } - private void addServiceDataToProto() { + private synchronized void addServiceDataToProto() { maybeInitBuilder(); builder.clearServiceData(); if (serviceData == null) @@ -324,7 +323,7 @@ public boolean hasNext() { } @Override - public Map getEnvironment() { + public synchronized Map getEnvironment() { initEnv(); return this.environment; } @@ -343,15 +342,14 @@ private void initEnv() { } @Override - public void setEnvironment(final Map env) { + public synchronized 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() { + private synchronized void addEnvToProto() { maybeInitBuilder(); builder.clearEnvironment(); if (environment == null) @@ -388,7 +386,7 @@ public boolean hasNext() { } @Override - public Map getApplicationACLs() { + public synchronized Map getApplicationACLs() { initApplicationACLs(); return this.applicationACLS; } @@ -408,7 +406,7 @@ private void initApplicationACLs() { } } - private void addApplicationACLs() { + private synchronized void addApplicationACLs() { maybeInitBuilder(); builder.clearApplicationACLs(); if (applicationACLS == null) { @@ -447,13 +445,12 @@ public void remove() { } @Override - public void setApplicationACLs( + public synchronized 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 2d234f2..0f9846b 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 @@ -115,6 +115,7 @@ private void maybeInitBuilder() { @Override public synchronized void setContainers( final Set containers) { + maybeInitBuilder(); if (null == containers) { builder.clearContainer(); } @@ -130,6 +131,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 56a5b58..77a1cea 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 @@ -55,7 +55,7 @@ public QueueInfoPBImpl(QueueInfoProto proto) { } @Override - public List getApplications() { + public synchronized List getApplications() { initLocalApplicationsList(); return this.applicationsList; } @@ -67,7 +67,7 @@ public float getCapacity() { } @Override - public List getChildQueues() { + public synchronized List getChildQueues() { initLocalChildQueuesList(); return this.childQueuesList; } @@ -100,7 +100,9 @@ public QueueState getQueueState() { } @Override - public void setApplications(List applications) { + public synchronized void + setApplications(List applications) { + maybeInitBuilder(); if (applications == null) { builder.clearApplications(); } @@ -114,7 +116,8 @@ public void setCapacity(float capacity) { } @Override - public void setChildQueues(List childQueues) { + public synchronized void setChildQueues(List childQueues) { + maybeInitBuilder(); if (childQueues == null) { builder.clearChildQueues(); } @@ -193,7 +196,7 @@ private void initLocalApplicationsList() { } } - private void addApplicationsToProto() { + private synchronized void addApplicationsToProto() { maybeInitBuilder(); builder.clearApplications(); if (applicationsList == null) @@ -240,7 +243,7 @@ private void initLocalChildQueuesList() { } } - private void addChildQueuesInfoToProto() { + private synchronized void addChildQueuesInfoToProto() { maybeInitBuilder(); builder.clearChildQueues(); if (childQueuesList == null) @@ -274,7 +277,7 @@ public void remove() { builder.addAllChildQueues(iterable); } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.childQueuesList != null) { addChildQueuesInfoToProto(); } 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 4aa9b09..4d92ae4 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 @@ -58,7 +58,7 @@ public String getQueueName() { } @Override - public List getUserAcls() { + public synchronized List getUserAcls() { initLocalQueueUserAclsList(); return this.userAclsList; } @@ -74,7 +74,8 @@ public void setQueueName(String queueName) { } @Override - public void setUserAcls(List userAclsList) { + public synchronized void setUserAcls(List userAclsList) { + maybeInitBuilder(); if (userAclsList == null) { builder.clearUserAcls(); } @@ -121,7 +122,7 @@ private void initLocalQueueUserAclsList() { } } - private void addQueueACLsToProto() { + private synchronized void addQueueACLsToProto() { maybeInitBuilder(); builder.clearUserAcls(); if (userAclsList == null) @@ -162,7 +163,7 @@ private void maybeInitBuilder() { viaProto = false; } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.userAclsList != null) { addQueueACLsToProto(); } 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 743e5d1..e129ac5 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 @@ -47,21 +47,21 @@ public ResourceBlacklistRequestPBImpl(ResourceBlacklistRequestProto proto) { viaProto = true; } - public ResourceBlacklistRequestProto getProto() { + public synchronized ResourceBlacklistRequestProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; return proto; } - private void maybeInitBuilder() { + private synchronized void maybeInitBuilder() { if (viaProto || builder == null) { builder = ResourceBlacklistRequestProto.newBuilder(proto); } viaProto = false; } - private void mergeLocalToProto() { + private synchronized void mergeLocalToProto() { if (viaProto) { maybeInitBuilder(); } @@ -70,7 +70,7 @@ private void mergeLocalToProto() { viaProto = true; } - private void mergeLocalToBuilder() { + private synchronized void mergeLocalToBuilder() { if (this.blacklistAdditions != null) { addBlacklistAdditionsToProto(); } @@ -79,7 +79,7 @@ private void mergeLocalToBuilder() { } } - private void addBlacklistAdditionsToProto() { + private synchronized void addBlacklistAdditionsToProto() { maybeInitBuilder(); builder.clearBlacklistAdditions(); if (this.blacklistAdditions == null) { @@ -88,7 +88,7 @@ private void addBlacklistAdditionsToProto() { builder.addAllBlacklistAdditions(this.blacklistAdditions); } - private void addBlacklistRemovalsToProto() { + private synchronized void addBlacklistRemovalsToProto() { maybeInitBuilder(); builder.clearBlacklistAdditions(); if (this.blacklistRemovals == null) { @@ -118,41 +118,33 @@ private void initBlacklistRemovals() { } @Override - public List getBlacklistAdditions() { + public synchronized List getBlacklistAdditions() { initBlacklistAdditions(); return this.blacklistAdditions; } @Override - public void setBlacklistAdditions(List resourceNames) { - if (resourceNames == null || resourceNames.isEmpty()) { - if (this.blacklistAdditions != null) { - this.blacklistAdditions.clear(); - } - return; + public synchronized void setBlacklistAdditions(List resourceNames) { + maybeInitBuilder(); + if (resourceNames == null) { + builder.clearBlacklistAdditions(); } - initBlacklistAdditions(); - this.blacklistAdditions.clear(); - this.blacklistAdditions.addAll(resourceNames); + this.blacklistAdditions = resourceNames; } @Override - public List getBlacklistRemovals() { + public synchronized List getBlacklistRemovals() { initBlacklistRemovals(); return this.blacklistRemovals; } @Override - public void setBlacklistRemovals(List resourceNames) { - if (resourceNames == null || resourceNames.isEmpty()) { - if (this.blacklistRemovals != null) { - this.blacklistRemovals.clear(); - } - return; + public synchronized void setBlacklistRemovals(List resourceNames) { + maybeInitBuilder(); + if (resourceNames == null) { + builder.clearBlacklistRemovals(); } - initBlacklistRemovals(); - this.blacklistRemovals.clear(); - this.blacklistRemovals.addAll(resourceNames); + this.blacklistRemovals = resourceNames; } @Override diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/StrictPreemptionContractPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/StrictPreemptionContractPBImpl.java index 28569b4..56e5413 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/StrictPreemptionContractPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/StrictPreemptionContractPBImpl.java @@ -109,6 +109,7 @@ private void maybeInitBuilder() { @Override public synchronized void setContainers( final Set containers) { + maybeInitBuilder(); if (null == containers) { builder.clearContainer(); }