SLIDER-1154 fix concurrent data access violations
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
index 7ff2b4c..08a6e2e 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
@@ -491,7 +491,7 @@
return snapshotTime;
}
- public AggregateConf getInstanceDefinitionSnapshot() {
+ public synchronized AggregateConf getInstanceDefinitionSnapshot() {
return instanceDefinitionSnapshot;
}
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeEntry.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeEntry.java
index cf3881e..eb8ff03 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeEntry.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/NodeEntry.java
@@ -279,7 +279,7 @@
/**
* Reset the failed recently count.
*/
- public void resetFailedRecently() {
+ public synchronized void resetFailedRecently() {
failedRecently = 0;
}
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
index c6524be..4357ef8 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
@@ -164,7 +164,7 @@
return escalationTimeoutMillis;
}
- public boolean isEscalated() {
+ public synchronized boolean isEscalated() {
return escalated;
}
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
index 0584d30..4e8a4d7 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
@@ -328,7 +328,7 @@
* It's OK to be incomplete, for those the list falls back to numbers.
* @return the information about that host, or null if there is none
*/
- public NodeInformation getNodeInformation(String hostname,
+ public synchronized NodeInformation getNodeInformation(String hostname,
Map<Integer, String> naming) {
NodeInstance nodeInstance = nodemap.get(hostname);
return nodeInstance != null ? nodeInstance.serialize(naming) : null;
@@ -1004,7 +1004,7 @@
* Escalate operation as triggered by external timer.
* @return a (usually empty) list of cancel/request operations.
*/
- public List<AbstractRMOperation> escalateOutstandingRequests() {
+ public synchronized List<AbstractRMOperation> escalateOutstandingRequests() {
return outstandingRequests.escalateOutstandingRequests(now());
}
/**