From 4963cfd67b2758966ce4def6e243eb2fb5bd1d0e Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 11 Jul 2016 16:42:36 +0100 Subject: [PATCH] Reset thread's interrupted flag when catching InterruptedException Closes gh-6360 --- .../boot/actuate/endpoint/ShutdownEndpoint.java | 2 +- .../springframework/boot/devtools/RemoteSpringApplication.java | 2 +- .../devtools/autoconfigure/FileWatchingFailureHandler.java | 2 +- .../boot/devtools/filewatch/FileSystemWatcher.java | 2 +- .../boot/devtools/remote/client/DelayedLiveReloadTrigger.java | 2 +- .../boot/devtools/tunnel/client/TunnelClient.java | 2 +- .../boot/devtools/tunnel/server/HttpTunnelServer.java | 3 ++- .../springframework/boot/loader/data/RandomAccessDataFile.java | 2 ++ .../main/java/org/springframework/boot/maven/StartMojo.java | 2 ++ 9 files changed, 12 insertions(+), 7 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ShutdownEndpoint.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ShutdownEndpoint.java index b3009442262..49c564d29e1 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ShutdownEndpoint.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ShutdownEndpoint.java @@ -66,7 +66,7 @@ public class ShutdownEndpoint extends AbstractEndpoint> Thread.sleep(500L); } catch (InterruptedException ex) { - // Swallow exception and continue + Thread.currentThread().interrupt(); } ShutdownEndpoint.this.context.close(); } diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/RemoteSpringApplication.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/RemoteSpringApplication.java index dff13a86cc5..c7440b24699 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/RemoteSpringApplication.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/RemoteSpringApplication.java @@ -91,7 +91,7 @@ public final class RemoteSpringApplication { Thread.sleep(1000); } catch (InterruptedException ex) { - // Ignore + Thread.currentThread().interrupt(); } } } diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/FileWatchingFailureHandler.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/FileWatchingFailureHandler.java index 4eb5cdb6c5a..58967fd336f 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/FileWatchingFailureHandler.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/FileWatchingFailureHandler.java @@ -52,7 +52,7 @@ class FileWatchingFailureHandler implements FailureHandler { latch.await(); } catch (InterruptedException ex) { - // Ignore + Thread.currentThread().interrupt(); } return Outcome.RETRY; } diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/filewatch/FileSystemWatcher.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/filewatch/FileSystemWatcher.java index 13b9e39dc59..0c87d2245cf 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/filewatch/FileSystemWatcher.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/filewatch/FileSystemWatcher.java @@ -239,7 +239,7 @@ public class FileSystemWatcher { scan(); } catch (InterruptedException ex) { - // Ignore + Thread.currentThread().interrupt(); } remainingScans = this.remainingScans.get(); } diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/remote/client/DelayedLiveReloadTrigger.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/remote/client/DelayedLiveReloadTrigger.java index 26941f583d4..37498dc74dc 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/remote/client/DelayedLiveReloadTrigger.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/remote/client/DelayedLiveReloadTrigger.java @@ -96,7 +96,7 @@ class DelayedLiveReloadTrigger implements Runnable { this.liveReloadServer.triggerReload(); } catch (InterruptedException ex) { - // Ignore + Thread.currentThread().interrupt(); } } diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/tunnel/client/TunnelClient.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/tunnel/client/TunnelClient.java index 37cf021e0e0..7f7219b59a4 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/tunnel/client/TunnelClient.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/tunnel/client/TunnelClient.java @@ -98,7 +98,7 @@ public class TunnelClient implements SmartInitializingSingleton { this.serverThread.join(2000); } catch (InterruptedException ex) { - // Ignore + Thread.currentThread().interrupt(); } this.serverThread = null; } diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/tunnel/server/HttpTunnelServer.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/tunnel/server/HttpTunnelServer.java index 85d4ef237b7..cc2c5711e32 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/tunnel/server/HttpTunnelServer.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/tunnel/server/HttpTunnelServer.java @@ -273,6 +273,7 @@ public class HttpTunnelServer { this.httpConnections.wait(HttpTunnelServer.this.longPollTimeout); } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); closeHttpConnections(); } httpConnection = this.httpConnections.pollFirst(); @@ -442,7 +443,7 @@ public class HttpTunnelServer { } } catch (InterruptedException ex) { - // Ignore + Thread.currentThread().interrupt(); } } } diff --git a/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/data/RandomAccessDataFile.java b/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/data/RandomAccessDataFile.java index 8d89927bf1a..5ba87dcc850 100644 --- a/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/data/RandomAccessDataFile.java +++ b/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/data/RandomAccessDataFile.java @@ -252,6 +252,7 @@ public class RandomAccessDataFile implements RandomAccessData { : file); } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); throw new IOException(ex); } } @@ -276,6 +277,7 @@ public class RandomAccessDataFile implements RandomAccessData { } } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); throw new IOException(ex); } } diff --git a/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java b/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java index 92ab64cb5be..0e45d747042 100644 --- a/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java +++ b/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java @@ -167,6 +167,7 @@ public class StartMojo extends AbstractRunMojo { this.lock.wait(wait); } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); throw new IllegalStateException( "Interrupted while waiting for Spring Boot app to start."); } @@ -275,6 +276,7 @@ public class StartMojo extends AbstractRunMojo { this.lock.wait(wait); } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); throw new IllegalStateException( "Interrupted while waiting for Spring Boot app to start."); }