X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2FConnection.java;h=169bfa57288e16b0c2658f81cc4cae296c78b52c;hb=a669196536534aa133343982d9c7600253fbf4a8;hp=aa287106a55657568a3fa87cc6259af996c3a4b7;hpb=88a5b34430159c860ea07ec50aeedf181a910e24;p=sonitus.git diff --git a/src/main/java/net/pterodactylus/sonitus/data/Connection.java b/src/main/java/net/pterodactylus/sonitus/data/Connection.java index aa28710..169bfa5 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/Connection.java +++ b/src/main/java/net/pterodactylus/sonitus/data/Connection.java @@ -18,6 +18,8 @@ package net.pterodactylus.sonitus.data; import java.io.IOException; +import java.util.logging.Level; +import java.util.logging.Logger; /** * A connection reads bytes from a {@link Source} and feeds it to a sink. This @@ -31,6 +33,9 @@ import java.io.IOException; */ public abstract class Connection implements Runnable { + /** The logger. */ + private static final Logger logger = Logger.getLogger(Connection.class.getName()); + /** The source to consume. */ private final Source source; @@ -51,13 +56,26 @@ public abstract class Connection implements Runnable { @Override public void run() { while (true) { + byte[] buffer = null; + try { + buffer = source.get(bufferSize()); + } catch (IOException ioe1) { + logger.log(Level.WARNING, "Source died!", ioe1); + break; + } try { - byte[] buffer = source.get(bufferSize()); feed(buffer); - } catch (IOException e) { + } catch (IOException ioe1) { + logger.log(Level.WARNING, "Sink died!", ioe1); break; } } + try { + logger.info("Connection finished."); + finish(); + } catch (IOException ioe1) { + /* well, what can we do? nothing. */ + } } //