From 3954fd70274cb175394a5060f251331a96d9dc8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Mon, 16 Jan 2012 21:32:48 +0100 Subject: Fix full state update to new clients. --- same/src/main/java/com/orbekk/same/MasterServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'same') diff --git a/same/src/main/java/com/orbekk/same/MasterServiceImpl.java b/same/src/main/java/com/orbekk/same/MasterServiceImpl.java index 729c0ba..d7a9e53 100644 --- a/same/src/main/java/com/orbekk/same/MasterServiceImpl.java +++ b/same/src/main/java/com/orbekk/same/MasterServiceImpl.java @@ -28,10 +28,11 @@ public class MasterServiceImpl implements MasterService, UrlReceiver, Runnable { List participants = participants(); if (!participants.contains(clientUrl)) { participants.add(clientUrl); + _fullStateReceivers.add(clientUrl); synchronized(this) { - notifyAll(); state.updateFromObject(".participants", participants, state.getRevision(".participants")); + notifyAll(); } } else { logger.warn("Client {} already part of network. " + @@ -58,7 +59,7 @@ public class MasterServiceImpl implements MasterService, UrlReceiver, Runnable { boolean hasWork = _fullStateReceivers.size() != 0; if (hasWork) { final List components = state.getComponents(); - broadcaster.broadcast(participants(), new ServiceOperation() { + broadcaster.broadcast(_fullStateReceivers, new ServiceOperation() { @Override public void run(ClientService client) { for (Component c : components) { client.setState(c.getName(), c.getData(), c.getRevision()); -- cgit v1.2.3