From 5a21215b4ea85bfa4da8d3fbb0f87916c2f4635a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Tue, 17 Jan 2012 18:25:48 +0100 Subject: Begin error handling. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit – Declare thrown exceptions in services. – Use try {} blocks when communicating with services. --- same/src/main/java/com/orbekk/same/ClientService.java | 4 ++-- .../src/main/java/com/orbekk/same/ClientServiceImpl.java | 6 +++++- same/src/main/java/com/orbekk/same/MasterService.java | 5 +++-- .../src/main/java/com/orbekk/same/MasterServiceImpl.java | 16 ++++++++++++---- 4 files changed, 22 insertions(+), 9 deletions(-) (limited to 'same/src/main') diff --git a/same/src/main/java/com/orbekk/same/ClientService.java b/same/src/main/java/com/orbekk/same/ClientService.java index 480b813..9382bfa 100644 --- a/same/src/main/java/com/orbekk/same/ClientService.java +++ b/same/src/main/java/com/orbekk/same/ClientService.java @@ -1,7 +1,7 @@ package com.orbekk.same; public interface ClientService { - void notifyNetwork(String networkName, String masterUrl); + void notifyNetwork(String networkName, String masterUrl) throws Exception; - void setState(String component, String data, long revision); + void setState(String component, String data, long revision) throws Exception; } diff --git a/same/src/main/java/com/orbekk/same/ClientServiceImpl.java b/same/src/main/java/com/orbekk/same/ClientServiceImpl.java index 36918cf..3f84c2e 100644 --- a/same/src/main/java/com/orbekk/same/ClientServiceImpl.java +++ b/same/src/main/java/com/orbekk/same/ClientServiceImpl.java @@ -42,7 +42,11 @@ public class ClientServiceImpl implements ClientService, UrlReceiver { if (myUrl != null) { MasterService master = connections.getMaster(masterUrl); state.clear(); - master.joinNetworkRequest(myUrl); + try { + master.joinNetworkRequest(myUrl); + } catch (Exception e) { + logger.error("Unable to connect to master.", e); + } } else { logger.error("Tried to join network at {}, but my url is unknown. " + "Run discovery service.", masterUrl); diff --git a/same/src/main/java/com/orbekk/same/MasterService.java b/same/src/main/java/com/orbekk/same/MasterService.java index 46e8ec1..6076ed4 100644 --- a/same/src/main/java/com/orbekk/same/MasterService.java +++ b/same/src/main/java/com/orbekk/same/MasterService.java @@ -1,6 +1,7 @@ package com.orbekk.same; public interface MasterService { - void joinNetworkRequest(String clientUrl); - boolean updateStateRequest(String component, String newData, long revision); + void joinNetworkRequest(String clientUrl) throws Exception; + boolean updateStateRequest(String component, String newData, long revision) + throws Exception; } diff --git a/same/src/main/java/com/orbekk/same/MasterServiceImpl.java b/same/src/main/java/com/orbekk/same/MasterServiceImpl.java index a8acc52..5511dbf 100644 --- a/same/src/main/java/com/orbekk/same/MasterServiceImpl.java +++ b/same/src/main/java/com/orbekk/same/MasterServiceImpl.java @@ -45,9 +45,13 @@ public class MasterServiceImpl implements MasterService, UrlReceiver, Runnable { for (final String component : state.getAndClearUpdatedComponents()) { logger.info("Broadcasting new component {}", state.show(component)); broadcaster.broadcast(participants(), new ServiceOperation() { - @Override public void run(ClientService client) { - client.setState(component, state.getDataOf(component), - state.getRevision(component)); + @Override public void run(ClientService client) { + try { + client.setState(component, state.getDataOf(component), + state.getRevision(component)); + } catch (Exception e) { + logger.warn("Exception when connecting to client.", e); + } } }); worked = true; @@ -62,7 +66,11 @@ public class MasterServiceImpl implements MasterService, UrlReceiver, Runnable { broadcaster.broadcast(_fullStateReceivers, new ServiceOperation() { @Override public void run(ClientService client) { for (Component c : components) { - client.setState(c.getName(), c.getData(), c.getRevision()); + try { + client.setState(c.getName(), c.getData(), c.getRevision()); + } catch (Exception e) { + logger.warn("Exception when connecting to client.", e); + } } } }); -- cgit v1.2.3