diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java index d36d841..cca343d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java @@ -63,7 +63,7 @@ // For drainEventsOnStop enabled only, block newly coming events into the // queue while stopping. private volatile boolean blockNewEvents = false; - private EventHandler handlerInstance = null; + private final EventHandler handlerInstance = new GenericEventHandler(); private Thread eventHandlingThread; protected final Map, EventHandler> eventDispatchers; @@ -216,9 +216,6 @@ public void register(Class eventType, @Override public EventHandler getEventHandler() { - if (handlerInstance == null) { - handlerInstance = new GenericEventHandler(); - } return handlerInstance; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java index bccde53..c94bf33 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java @@ -591,7 +591,7 @@ public void checkVersion() throws Exception { * RMAppStoredEvent will be sent on completion to notify the RMApp */ @SuppressWarnings("unchecked") - public synchronized void storeNewApplication(RMApp app) { + public void storeNewApplication(RMApp app) { ApplicationSubmissionContext context = app .getApplicationSubmissionContext(); assert context instanceof ApplicationSubmissionContextPBImpl; @@ -602,7 +602,7 @@ public synchronized void storeNewApplication(RMApp app) { } @SuppressWarnings("unchecked") - public synchronized void updateApplicationState( + public void updateApplicationState( ApplicationStateData appState) { dispatcher.getEventHandler().handle(new RMStateUpdateAppEvent(appState)); } @@ -629,7 +629,7 @@ protected abstract void updateApplicationStateInternal(ApplicationId appId, * This does not block the dispatcher threads * RMAppAttemptStoredEvent will be sent on completion to notify the RMAppAttempt */ - public synchronized void storeNewApplicationAttempt(RMAppAttempt appAttempt) { + public void storeNewApplicationAttempt(RMAppAttempt appAttempt) { Credentials credentials = getCredentialsFromAppAttempt(appAttempt); AggregateAppResourceUsage resUsage = @@ -647,7 +647,7 @@ public synchronized void storeNewApplicationAttempt(RMAppAttempt appAttempt) { } @SuppressWarnings("unchecked") - public synchronized void updateApplicationAttemptState( + public void updateApplicationAttemptState( ApplicationAttemptStateData attemptState) { dispatcher.getEventHandler().handle( new RMStateUpdateAppAttemptEvent(attemptState)); @@ -778,7 +778,7 @@ public void storeOrUpdateAMRMTokenSecretManager( * There is no notification of completion for this operation. */ @SuppressWarnings("unchecked") - public synchronized void removeApplication(RMApp app) { + public void removeApplication(RMApp app) { ApplicationStateData appState = ApplicationStateData.newInstance( app.getSubmitTime(), app.getStartTime(),