commit | a2ce3ae6a84d14af0333c6719d7da36197d55acc | [log] [tgz] |
---|---|---|
author | Madhusudan.C.S <madhusudancs@gmail.com> | Wed Apr 17 22:56:03 2013 -0700 |
committer | Madhusudan.C.S <madhusudancs@gmail.com> | Wed Apr 17 22:56:03 2013 -0700 |
tree | 5e0f2d230e88e7b6bda202ef72d0e07350dd5b48 | |
parent | 0a2132d78d37669a31fb1a912561b8ce602e4355 [diff] |
De-init the state only if the state for a partition was initialized at all on this node controller.
diff --git a/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/dataset/DatasetPartitionManager.java b/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/dataset/DatasetPartitionManager.java index af9a607..04dfb33 100644 --- a/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/dataset/DatasetPartitionManager.java +++ b/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/dataset/DatasetPartitionManager.java
@@ -55,13 +55,19 @@ private static final long serialVersionUID = 1L; protected boolean removeEldestEntry(Map.Entry<JobId, ResultState[]> eldest) { - if (size() > resultHistorySize) { - for (ResultState state : eldest.getValue()) { - state.deinit(); + synchronized (DatasetPartitionManager.this) { + if (size() > resultHistorySize) { + ResultState[] resultStates = eldest.getValue(); + for (int i = 0; i < resultStates.length; i++) { + ResultState state = resultStates[i]; + if (state != null) { + state.deinit(); + } + } + return true; } - return true; + return false; } - return false; } }; }