From b5c7332f5976cc19ab681ed4b82501a62c6a2f61 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gmail.com>
Date: Tue, 30 Jun 2015 08:48:35 -0400
Subject: [PATCH] Merge pull request #277 from mrjoel/mrjoel-serverNPEfix

---
 src/main/java/com/gitblit/GitBlitServer.java |   35 +++++++++++++++++++----------------
 1 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/gitblit/GitBlitServer.java b/src/main/java/com/gitblit/GitBlitServer.java
index a1fd071..d56d9c0 100644
--- a/src/main/java/com/gitblit/GitBlitServer.java
+++ b/src/main/java/com/gitblit/GitBlitServer.java
@@ -509,22 +509,25 @@
 
 		@Override
 		public void run() {
-			logger.info("Shutdown Monitor listening on port " + socket.getLocalPort());
-			Socket accept;
-			try {
-				accept = socket.accept();
-				BufferedReader reader = new BufferedReader(new InputStreamReader(
-						accept.getInputStream()));
-				reader.readLine();
-				logger.info(Constants.BORDER);
-				logger.info("Stopping " + Constants.NAME);
-				logger.info(Constants.BORDER);
-				server.stop();
-				server.setStopAtShutdown(false);
-				accept.close();
-				socket.close();
-			} catch (Exception e) {
-				logger.warn("Failed to shutdown Jetty", e);
+			// Only run if the socket was able to be created (not already in use, failed to bind, etc.)
+			if (null != socket) {
+				logger.info("Shutdown Monitor listening on port " + socket.getLocalPort());
+				Socket accept;
+				try {
+					accept = socket.accept();
+					BufferedReader reader = new BufferedReader(new InputStreamReader(
+							accept.getInputStream()));
+					reader.readLine();
+					logger.info(Constants.BORDER);
+					logger.info("Stopping " + Constants.NAME);
+					logger.info(Constants.BORDER);
+					server.stop();
+					server.setStopAtShutdown(false);
+					accept.close();
+					socket.close();
+				} catch (Exception e) {
+					logger.warn("Failed to shutdown Jetty", e);
+				}
 			}
 		}
 	}

--
Gitblit v1.9.1