From 28b9e399ae43e95e03fac0283b3d2cc4a55e3728 Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Thu, 1 Dec 2011 19:49:22 +0000
Subject: [PATCH] Don't swallow interrupts.

---
 components/net/sf/briar/db/DatabaseCleanerImpl.java      | 3 +--
 components/net/sf/briar/db/JdbcDatabase.java             | 6 ++----
 .../sf/briar/lifecycle/WindowsShutdownManagerImpl.java   | 2 +-
 components/net/sf/briar/plugins/PollerImpl.java          | 3 +--
 .../net/sf/briar/plugins/bluetooth/BluetoothPlugin.java  | 2 +-
 .../sf/briar/plugins/bluetooth/ConnectionCallback.java   | 2 +-
 .../net/sf/briar/plugins/bluetooth/ContactListener.java  | 2 +-
 .../sf/briar/plugins/bluetooth/InvitationListener.java   | 2 +-
 components/net/sf/briar/plugins/file/FileListener.java   | 7 +------
 .../briar/plugins/file/PollingRemovableDriveMonitor.java | 8 +-------
 components/net/sf/briar/transport/FrameScheduler.java    | 9 +--------
 .../net/sf/briar/transport/PaddedConnectionWriter.java   | 2 +-
 .../net/sf/briar/transport/stream/StreamConnection.java  | 6 ++----
 test/net/sf/briar/LockFairnessTest.java                  | 4 ++--
 .../briar/lifecycle/WindowsShutdownManagerImplTest.java  | 2 +-
 15 files changed, 18 insertions(+), 42 deletions(-)

diff --git a/components/net/sf/briar/db/DatabaseCleanerImpl.java b/components/net/sf/briar/db/DatabaseCleanerImpl.java
index b4199a6b08..e1242850f5 100644
--- a/components/net/sf/briar/db/DatabaseCleanerImpl.java
+++ b/components/net/sf/briar/db/DatabaseCleanerImpl.java
@@ -37,8 +37,7 @@ class DatabaseCleanerImpl implements DatabaseCleaner, Runnable {
 						try {
 							wait(msBetweenSweeps);
 						} catch(InterruptedException e) {
-							if(LOG.isLoggable(Level.WARNING))
-								LOG.warning(e.getMessage());
+							Thread.currentThread().interrupt();
 						}
 					}
 				} catch(DbException e) {
diff --git a/components/net/sf/briar/db/JdbcDatabase.java b/components/net/sf/briar/db/JdbcDatabase.java
index 7ff982272d..c9d40d7d5d 100644
--- a/components/net/sf/briar/db/JdbcDatabase.java
+++ b/components/net/sf/briar/db/JdbcDatabase.java
@@ -393,8 +393,7 @@ abstract class JdbcDatabase implements Database<Connection> {
 				try {
 					connections.wait();
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(Level.WARNING))
-						LOG.warning(e.getMessage());
+					Thread.currentThread().interrupt();
 				}
 			}
 			txn = connections.poll();
@@ -462,8 +461,7 @@ abstract class JdbcDatabase implements Database<Connection> {
 				try {
 					connections.wait();
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(Level.WARNING))
-						LOG.warning(e.getMessage());
+					Thread.currentThread().interrupt();
 				}
 				for(Connection c : connections) c.close();
 				openConnections -= connections.size();
diff --git a/components/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java b/components/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
index 1949213209..a84b52440b 100644
--- a/components/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
+++ b/components/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
@@ -77,7 +77,7 @@ class WindowsShutdownManagerImpl extends ShutdownManagerImpl {
 			try {
 				hook.join();
 			} catch(InterruptedException e) {
-				if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage());
+				Thread.currentThread().interrupt();
 			}
 		}
 	}
diff --git a/components/net/sf/briar/plugins/PollerImpl.java b/components/net/sf/briar/plugins/PollerImpl.java
index 708a56baee..593b625a2b 100644
--- a/components/net/sf/briar/plugins/PollerImpl.java
+++ b/components/net/sf/briar/plugins/PollerImpl.java
@@ -52,8 +52,7 @@ class PollerImpl implements Poller, Runnable {
 					try {
 						wait(p.time - now);
 					} catch(InterruptedException e) {
-						if(LOG.isLoggable(Level.WARNING))
-							LOG.warning(e.getMessage());
+						Thread.currentThread().interrupt();
 					}
 				}
 			}
diff --git a/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java b/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
index ff1bccd6e0..a06c13a262 100644
--- a/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
+++ b/components/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
@@ -378,7 +378,7 @@ class BluetoothPlugin extends AbstractPlugin implements StreamPlugin {
 			Thread.sleep(c.getTimeout());
 			scn.close();
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage());
+			Thread.currentThread().interrupt();
 		} catch(IOException e) {
 			if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage());
 		}
diff --git a/components/net/sf/briar/plugins/bluetooth/ConnectionCallback.java b/components/net/sf/briar/plugins/bluetooth/ConnectionCallback.java
index fdcaebca11..3e75bd2b37 100644
--- a/components/net/sf/briar/plugins/bluetooth/ConnectionCallback.java
+++ b/components/net/sf/briar/plugins/bluetooth/ConnectionCallback.java
@@ -37,7 +37,7 @@ class ConnectionCallback {
 			try {
 				wait(end - now);
 			} catch(InterruptedException e) {
-				if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage());
+				Thread.currentThread().interrupt();
 			}
 			now = System.currentTimeMillis();
 		}
diff --git a/components/net/sf/briar/plugins/bluetooth/ContactListener.java b/components/net/sf/briar/plugins/bluetooth/ContactListener.java
index 9b77704e0e..c5e765cb11 100644
--- a/components/net/sf/briar/plugins/bluetooth/ContactListener.java
+++ b/components/net/sf/briar/plugins/bluetooth/ContactListener.java
@@ -38,7 +38,7 @@ class ContactListener extends AbstractListener {
 		try {
 			finished.await();
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage());
+			Thread.currentThread().interrupt();
 		}
 		return urls;
 	}
diff --git a/components/net/sf/briar/plugins/bluetooth/InvitationListener.java b/components/net/sf/briar/plugins/bluetooth/InvitationListener.java
index 9d258d87d1..993086a798 100644
--- a/components/net/sf/briar/plugins/bluetooth/InvitationListener.java
+++ b/components/net/sf/briar/plugins/bluetooth/InvitationListener.java
@@ -30,7 +30,7 @@ class InvitationListener extends AbstractListener {
 		try {
 			finished.await();
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage());
+			Thread.currentThread().interrupt();
 		}
 		return url;
 	}
diff --git a/components/net/sf/briar/plugins/file/FileListener.java b/components/net/sf/briar/plugins/file/FileListener.java
index e98e0f3421..367764ad2d 100644
--- a/components/net/sf/briar/plugins/file/FileListener.java
+++ b/components/net/sf/briar/plugins/file/FileListener.java
@@ -3,14 +3,9 @@ package net.sf.briar.plugins.file;
 import java.io.File;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 class FileListener {
 
-	private static final Logger LOG =
-		Logger.getLogger(FileListener.class.getName());
-
 	private final String filename;
 	private final long end;
 	private final CountDownLatch finished = new CountDownLatch(1);
@@ -27,7 +22,7 @@ class FileListener {
 		try {
 			finished.await(end - now, TimeUnit.MILLISECONDS);
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.getMessage());
+			Thread.currentThread().interrupt();
 		}
 		return file;
 	}
diff --git a/components/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java b/components/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
index 577449bdfa..72f9e9eaea 100644
--- a/components/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
+++ b/components/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
@@ -3,14 +3,9 @@ package net.sf.briar.plugins.file;
 import java.io.File;
 import java.io.IOException;
 import java.util.Collection;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 class PollingRemovableDriveMonitor implements RemovableDriveMonitor, Runnable {
 
-	private static final Logger LOG =
-		Logger.getLogger(PollingRemovableDriveMonitor.class.getName());
-
 	private final RemovableDriveFinder finder;
 	private final long pollingInterval;
 	private final Object pollingLock = new Object();
@@ -53,8 +48,7 @@ class PollingRemovableDriveMonitor implements RemovableDriveMonitor, Runnable {
 					try {
 						pollingLock.wait(pollingInterval);
 					} catch(InterruptedException e) {
-						if(LOG.isLoggable(Level.WARNING))
-							LOG.warning(e.getMessage());
+						Thread.currentThread().interrupt();
 					}
 				}
 				if(!running) return;
diff --git a/components/net/sf/briar/transport/FrameScheduler.java b/components/net/sf/briar/transport/FrameScheduler.java
index 94bc075549..2b0d0a9b6e 100644
--- a/components/net/sf/briar/transport/FrameScheduler.java
+++ b/components/net/sf/briar/transport/FrameScheduler.java
@@ -2,9 +2,6 @@ package net.sf.briar.transport;
 
 import static net.sf.briar.api.transport.TransportConstants.MAX_FRAME_LENGTH;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
 /**
  * A thread that calls the writeFullFrame() method of a PaddedConnectionWriter
  * at regular intervals. The interval between calls is determined by a target
@@ -13,9 +10,6 @@ import java.util.logging.Logger;
  */
 class FrameScheduler extends Thread {
 
-	private static final Logger LOG =
-		Logger.getLogger(FrameScheduler.class.getName());
-
 	private final PaddedConnectionWriter writer;
 	private final int millisPerFrame;
 
@@ -34,8 +28,7 @@ class FrameScheduler extends Thread {
 				try {
 					Thread.sleep(nextCall - now);
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(Level.WARNING))
-						LOG.warning(e.getMessage());
+					Thread.currentThread().interrupt();
 				}
 			}
 			lastCall = System.currentTimeMillis();
diff --git a/components/net/sf/briar/transport/PaddedConnectionWriter.java b/components/net/sf/briar/transport/PaddedConnectionWriter.java
index 52e4430646..ae61f11bfa 100644
--- a/components/net/sf/briar/transport/PaddedConnectionWriter.java
+++ b/components/net/sf/briar/transport/PaddedConnectionWriter.java
@@ -108,7 +108,7 @@ class PaddedConnectionWriter extends ConnectionWriterImpl {
 		try {
 			wait();
 		} catch(InterruptedException e) {
-			throw new IOException(e.getMessage());
+			Thread.currentThread().interrupt();
 		}
 		if(exception != null) throw exception;
 	}
diff --git a/components/net/sf/briar/transport/stream/StreamConnection.java b/components/net/sf/briar/transport/stream/StreamConnection.java
index 18a2c918a9..b43ada49f1 100644
--- a/components/net/sf/briar/transport/stream/StreamConnection.java
+++ b/components/net/sf/briar/transport/stream/StreamConnection.java
@@ -218,8 +218,7 @@ abstract class StreamConnection implements DatabaseListener {
 							try {
 								wait();
 							} catch(InterruptedException e) {
-								if(LOG.isLoggable(Level.WARNING))
-									LOG.warning(e.getMessage());
+								Thread.currentThread().interrupt();
 							}
 						}
 						flags = writerFlags;
@@ -258,8 +257,7 @@ abstract class StreamConnection implements DatabaseListener {
 							try {
 								wait();
 							} catch(InterruptedException e) {
-								if(LOG.isLoggable(Level.WARNING))
-									LOG.warning(e.getMessage());
+								Thread.currentThread().interrupt();
 							}
 						}
 						flags = writerFlags;
diff --git a/test/net/sf/briar/LockFairnessTest.java b/test/net/sf/briar/LockFairnessTest.java
index 081c89fc71..e72c605e05 100644
--- a/test/net/sf/briar/LockFairnessTest.java
+++ b/test/net/sf/briar/LockFairnessTest.java
@@ -77,7 +77,7 @@ public class LockFairnessTest extends TestCase {
 				Thread.sleep(sleepTime);
 				finished.add(this);
 			} catch(InterruptedException e) {
-				e.printStackTrace();
+				fail();
 			} finally {
 				lock.readLock().unlock();
 			}
@@ -101,7 +101,7 @@ public class LockFairnessTest extends TestCase {
 				Thread.sleep(sleepTime);
 				finished.add(this);
 			} catch(InterruptedException e) {
-				e.printStackTrace();
+				fail();
 			} finally {
 				lock.writeLock().unlock();
 			}
diff --git a/test/net/sf/briar/lifecycle/WindowsShutdownManagerImplTest.java b/test/net/sf/briar/lifecycle/WindowsShutdownManagerImplTest.java
index 42795b4ca2..ce872e97de 100644
--- a/test/net/sf/briar/lifecycle/WindowsShutdownManagerImplTest.java
+++ b/test/net/sf/briar/lifecycle/WindowsShutdownManagerImplTest.java
@@ -32,7 +32,7 @@ public class WindowsShutdownManagerImplTest extends ShutdownManagerImplTest {
 				Thread.sleep(100);
 				finished = true;
 			} catch(InterruptedException e) {
-				// Don't finish
+				fail();
 			}
 		}
 	}
-- 
GitLab