diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/LocalResourcesTrackerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/LocalResourcesTrackerImpl.java index ad24c62828f..48d21351cf2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/LocalResourcesTrackerImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/LocalResourcesTrackerImpl.java @@ -259,15 +259,8 @@ public void incrementFileCountForLocalCacheDirectory(Path cacheDir) { Path cacheRoot = LocalCacheDirectoryManager.getCacheDirectoryRoot( cacheDir); if (cacheRoot != null) { - LocalCacheDirectoryManager dir = directoryManagers.get(cacheRoot); - if (dir == null) { - dir = new LocalCacheDirectoryManager(conf); - LocalCacheDirectoryManager otherDir = - directoryManagers.putIfAbsent(cacheRoot, dir); - if (otherDir != null) { - dir = otherDir; - } - } + LocalCacheDirectoryManager dir = directoryManagers.computeIfAbsent( + cacheRoot, k -> new LocalCacheDirectoryManager(conf)); if (cacheDir.equals(cacheRoot)) { dir.incrementFileCountForPath(""); } else { @@ -464,11 +457,8 @@ public Path getPathForLocalization(LocalResourceRequest req, Path rPath = localDirPath; if (useLocalCacheDirectoryManager && localDirPath != null) { - if (!directoryManagers.containsKey(localDirPath)) { - directoryManagers.putIfAbsent(localDirPath, - new LocalCacheDirectoryManager(conf)); - } - LocalCacheDirectoryManager dir = directoryManagers.get(localDirPath); + LocalCacheDirectoryManager dir = directoryManagers.computeIfAbsent( + localDirPath, key -> new LocalCacheDirectoryManager(conf)); rPath = localDirPath; String hierarchicalPath = dir.getRelativePathForLocalization(); @@ -525,11 +515,8 @@ public LocalizedResource getLocalizedResource(LocalResourceRequest request) { @VisibleForTesting LocalCacheDirectoryManager getDirectoryManager(Path localDirPath) { - LocalCacheDirectoryManager mgr = null; - if (useLocalCacheDirectoryManager) { - mgr = directoryManagers.get(localDirPath); - } - return mgr; + return (!useLocalCacheDirectoryManager) ? null + : directoryManagers.get(localDirPath); } @VisibleForTesting