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
*/
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;
@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. */
+ }
}
//