YARN-7270 addendum: Reapplied changes after YARN-3926 backports
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java
index 9a5bc79..7e8c01d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/Resource.java
@@ -285,7 +285,7 @@
       return;
     }
     if (resource.equals(ResourceInformation.VCORES_URI)) {
-      this.setVirtualCores((int) resourceInformation.getValue());
+      this.setVirtualCores(castToIntSafely(resourceInformation.getValue()));
       return;
     }
     ResourceInformation storedResourceInfo = getResourceInformation(resource);
@@ -331,7 +331,7 @@
       return;
     }
     if (resource.equals(ResourceInformation.VCORES_URI)) {
-      this.setVirtualCores((int)value);
+      this.setVirtualCores(castToIntSafely(value));
       return;
     }
 
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/LightWeightResource.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/LightWeightResource.java
index b80e133..a64d242 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/LightWeightResource.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/LightWeightResource.java
@@ -92,7 +92,7 @@
   @Override
   @SuppressWarnings("deprecation")
   public int getMemory() {
-    return (int) memoryResInfo.getValue();
+    return castToIntSafely(memoryResInfo.getValue());
   }
 
   @Override
@@ -113,7 +113,7 @@
 
   @Override
   public int getVirtualCores() {
-    return (int) vcoresResInfo.getValue();
+    return castToIntSafely(vcoresResInfo.getValue());
   }
 
   @Override
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 06c30ff..4ae64c2 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
@@ -117,7 +117,7 @@
   @Override
   public int getVirtualCores() {
     // vcores should always be present
-    return (int) resources[VCORES_INDEX].getValue();
+    return castToIntSafely(resources[VCORES_INDEX].getValue());
   }
 
   @Override