From 2e2eba820d9e5d507e6288934cedd384ff5630ff Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Fri, 7 Sep 2012 12:46:45 +0100 Subject: [PATCH] Handle exceptions thrown by connections' dispose() methods. --- .../simplex/IncomingSimplexConnection.java | 6 +++++- .../simplex/OutgoingSimplexConnection.java | 14 +++++++++++--- .../briar/transport/ConnectionDispatcherImpl.java | 14 +++++++++++--- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/components/net/sf/briar/protocol/simplex/IncomingSimplexConnection.java b/components/net/sf/briar/protocol/simplex/IncomingSimplexConnection.java index f05e8c5ec7..a15c7bd8dd 100644 --- a/components/net/sf/briar/protocol/simplex/IncomingSimplexConnection.java +++ b/components/net/sf/briar/protocol/simplex/IncomingSimplexConnection.java @@ -88,7 +88,11 @@ class IncomingSimplexConnection { transport.dispose(false, true); } catch(IOException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); - transport.dispose(true, true); + try { + transport.dispose(true, true); + } catch(IOException e1) { + if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); + } } finally { connRegistry.unregisterConnection(contactId, transportId); } diff --git a/components/net/sf/briar/protocol/simplex/OutgoingSimplexConnection.java b/components/net/sf/briar/protocol/simplex/OutgoingSimplexConnection.java index 880f2f5584..6333a700ed 100644 --- a/components/net/sf/briar/protocol/simplex/OutgoingSimplexConnection.java +++ b/components/net/sf/briar/protocol/simplex/OutgoingSimplexConnection.java @@ -28,7 +28,7 @@ import net.sf.briar.api.transport.ConnectionWriterFactory; class OutgoingSimplexConnection { private static final Logger LOG = - Logger.getLogger(OutgoingSimplexConnection.class.getName()); + Logger.getLogger(OutgoingSimplexConnection.class.getName()); private final DatabaseComponent db; private final ConnectionRegistry connRegistry; @@ -103,10 +103,18 @@ class OutgoingSimplexConnection { transport.dispose(false); } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); - transport.dispose(true); + try { + transport.dispose(true); + } catch(IOException e1) { + if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); + } } catch(IOException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); - transport.dispose(true); + try { + transport.dispose(true); + } catch(IOException e1) { + if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); + } } finally { connRegistry.unregisterConnection(contactId, transportId); } diff --git a/components/net/sf/briar/transport/ConnectionDispatcherImpl.java b/components/net/sf/briar/transport/ConnectionDispatcherImpl.java index 4adbba871f..1ac49b86b7 100644 --- a/components/net/sf/briar/transport/ConnectionDispatcherImpl.java +++ b/components/net/sf/briar/transport/ConnectionDispatcherImpl.java @@ -27,7 +27,7 @@ import com.google.inject.Inject; class ConnectionDispatcherImpl implements ConnectionDispatcher { private static final Logger LOG = - Logger.getLogger(ConnectionDispatcherImpl.class.getName()); + Logger.getLogger(ConnectionDispatcherImpl.class.getName()); private final Executor connExecutor; private final ConnectionRecogniser recogniser; @@ -96,10 +96,18 @@ class ConnectionDispatcherImpl implements ConnectionDispatcher { transport); } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); - transport.dispose(true, false); + try { + transport.dispose(true, false); + } catch(IOException e1) { + if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); + } } catch(IOException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); - transport.dispose(true, false); + try { + transport.dispose(true, false); + } catch(IOException e1) { + if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString()); + } } } } -- GitLab