summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-05-02 13:53:46 +0200
committerKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-05-02 13:53:46 +0200
commitd30a10676cc844c4cc8953348b53bbac133406ca (patch)
tree0f0c0c0110abca315e3f3cdc366d08d1e2e66c4f
parent4bc0de6fd0c9dc1562ff91d1c21ed6e0d3731299 (diff)
Fix State issues.
– State now copies correctly. – Remove updatedComponents which was not used.
-rw-r--r--same/src/main/java/com/orbekk/same/State.java24
1 files changed, 5 insertions, 19 deletions
diff --git a/same/src/main/java/com/orbekk/same/State.java b/same/src/main/java/com/orbekk/same/State.java
index e62fbee..ce4f18d 100644
--- a/same/src/main/java/com/orbekk/same/State.java
+++ b/same/src/main/java/com/orbekk/same/State.java
@@ -38,7 +38,6 @@ public class State {
private Logger logger = LoggerFactory.getLogger(getClass());
private Map<String, Component> state = new HashMap<String, Component>();
private ObjectMapper mapper = new ObjectMapper();
- private Set<String> updatedComponents = new TreeSet<String>();
public static final String PARTICIPANTS = ".participants0";
@@ -49,11 +48,12 @@ public class State {
}
public State(State other) {
- state.putAll(other.state);
+ for (Component c : other.getComponents()) {
+ state.put(c.getName(), c);
+ }
}
public synchronized void clear() {
- updatedComponents.clear();
state.clear();
}
@@ -62,7 +62,6 @@ public class State {
Component oldComponent = state.get(componentName);
Component newComponent = new Component(componentName, revision, data);
state.put(componentName, newComponent);
- updatedComponents.add(componentName);
}
public synchronized boolean update(String componentName, String data,
@@ -75,12 +74,8 @@ public class State {
}
if (revision > component.getRevision()) {
- Component oldComponent = new Component(component);
- component.setName(componentName);
- component.setRevision(revision);
- component.setData(data);
- state.put(componentName, component);
- updatedComponents.add(componentName);
+ Component newComponent = new Component(componentName, revision, data);
+ state.put(componentName, newComponent);
return true;
} else {
return false;
@@ -187,15 +182,6 @@ public class State {
return list;
}
- public synchronized List<Component> getAndClearUpdatedComponents() {
- List<Component> components = new ArrayList<Component>();
- for (String name : updatedComponents) {
- components.add(state.get(name));
- }
- updatedComponents.clear();
- return components;
- }
-
public static class Component {
private String name;
private long revision;