From 00df158ad6f03ed1a2d3a3f2f9c4c19c6a9df2d2 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Tue, 6 Dec 2011 00:03:05 +0000 Subject: [PATCH] Ensure semaphore is released if an exception is thrown. --- .../transport/batch/IncomingBatchConnection.java | 12 ++++++++---- .../briar/transport/stream/StreamConnection.java | 15 ++++++++++----- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/components/net/sf/briar/transport/batch/IncomingBatchConnection.java b/components/net/sf/briar/transport/batch/IncomingBatchConnection.java index cf8e00d04e..e1a5082f06 100644 --- a/components/net/sf/briar/transport/batch/IncomingBatchConnection.java +++ b/components/net/sf/briar/transport/batch/IncomingBatchConnection.java @@ -72,8 +72,9 @@ class IncomingBatchConnection { } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); } else if(proto.hasBatch()) { @@ -90,8 +91,9 @@ class IncomingBatchConnection { } catch(GeneralSecurityException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); } else if(proto.hasSubscriptionUpdate()) { @@ -105,8 +107,9 @@ class IncomingBatchConnection { } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); } else if(proto.hasTransportUpdate()) { @@ -120,8 +123,9 @@ class IncomingBatchConnection { } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); } else { diff --git a/components/net/sf/briar/transport/stream/StreamConnection.java b/components/net/sf/briar/transport/stream/StreamConnection.java index 17839b393b..8e1cf6730c 100644 --- a/components/net/sf/briar/transport/stream/StreamConnection.java +++ b/components/net/sf/briar/transport/stream/StreamConnection.java @@ -140,8 +140,9 @@ abstract class StreamConnection implements DatabaseListener { } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); } else if(proto.hasBatch()) { @@ -158,8 +159,9 @@ abstract class StreamConnection implements DatabaseListener { } catch(GeneralSecurityException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); } else if(proto.hasOffer()) { @@ -200,8 +202,9 @@ abstract class StreamConnection implements DatabaseListener { } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); // Store the requested message IDs and notify the writer @@ -223,8 +226,9 @@ abstract class StreamConnection implements DatabaseListener { } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); } else if(proto.hasTransportUpdate()) { @@ -238,8 +242,9 @@ abstract class StreamConnection implements DatabaseListener { } catch(DbException e) { if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage()); + } finally { + semaphore.release(); } - semaphore.release(); } }); } else { -- GitLab