From 6ade8115edbcc68c531e4ea115dd0d0389ac3285 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Fri, 31 Aug 2012 10:46:48 +0200 Subject: [PATCH] Make sure we have a connection to the node before checking for updates. --- .../todesbaum/jsite/application/UpdateChecker.java | 32 ++++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/todesbaum/jsite/application/UpdateChecker.java b/src/main/java/de/todesbaum/jsite/application/UpdateChecker.java index bd3b14f..0c78010 100644 --- a/src/main/java/de/todesbaum/jsite/application/UpdateChecker.java +++ b/src/main/java/de/todesbaum/jsite/application/UpdateChecker.java @@ -193,17 +193,31 @@ public class UpdateChecker implements Runnable { */ @Override public void run() { - Connection connection = freenetInterface.getConnection("jSite-" + ++counter + "-UpdateChecker"); - try { - connection.connect(); - } catch (IOException e1) { - e1.printStackTrace(); - } - Client client = new Client(connection); - boolean checkNow = false; int currentEdition = lastUpdateEdition; while (!shouldStop()) { - checkNow = false; + + /* try to connect. */ + Client client; + while (true) { + Connection connection = freenetInterface.getConnection("jSite-" + ++counter + "-UpdateChecker"); + try { + connection.connect(); + logger.log(Level.INFO, "Connected to " + freenetInterface.getNode() + "."); + client = new Client(connection); + break; + } catch (IOException ioe1) { + logger.log(Level.INFO, "Could not connect to " + freenetInterface.getNode() + ".", ioe1); + } + if (!connection.isConnected()) { + try { + Thread.sleep(60 * 1000); + } catch (InterruptedException ie1) { + /* ignore, we’re looping. */ + } + } + } + + boolean checkNow = false; logger.log(Level.FINE, "Trying " + constructUpdateKey(currentEdition)); ClientGet clientGet = new ClientGet("get-update-key"); clientGet.setUri(constructUpdateKey(currentEdition)); -- 2.7.4