From 0c8813f135f8c17f88660bb92529c15bb3a157ca Mon Sep 17 00:00:00 2001 From: Sunil G Date: Tue, 2 Jul 2019 11:44:11 +0530 Subject: [PATCH] YARN-9327. Improve synchronisation in ProtoUtils#convertToProtoFormat block. Contributed by Bibin A Chundatt. --- .../apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java | 2 +- .../hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java index 3f360d764cc..64b49c86b4e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java @@ -412,7 +412,7 @@ public class ProtoUtils { /* * Resource */ - public static synchronized ResourceProto convertToProtoFormat(Resource r) { + public static ResourceProto convertToProtoFormat(Resource r) { return ResourcePBImpl.getProto(r); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java index 36fc959cbb3..ed9f3dbb8cd 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java @@ -75,14 +75,14 @@ public class ResourcePBImpl extends Resource { initResources(); } - public ResourceProto getProto() { + synchronized public ResourceProto getProto() { mergeLocalToProto(); proto = viaProto ? proto : builder.build(); viaProto = true; return proto; } - private void maybeInitBuilder() { + synchronized private void maybeInitBuilder() { if (viaProto || builder == null) { builder = ResourceProto.newBuilder(proto); } @@ -131,7 +131,7 @@ public class ResourcePBImpl extends Resource { resources[VCORES_INDEX].setValue(vCores); } - private void initResources() { + synchronized private void initResources() { if (this.resources != null) { return; }