aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephane Gamard <stephane.gamard@searchbox.com>2014-07-23 11:37:35 +0200
committerStephane Gamard <stephane.gamard@searchbox.com>2014-07-23 15:34:07 +0200
commitcf4a25947f7812927f22c0c2cf2cd1bf8a58718c (patch)
tree83f3295cfa6096b630727f04064756804722c187
parent1956e1b379399f6c689ef3fcb6072ad683c6e26e (diff)
downloadsonarqube-cf4a25947f7812927f22c0c2cf2cd1bf8a58718c.tar.gz
sonarqube-cf4a25947f7812927f22c0c2cf2cd1bf8a58718c.zip
SONAR-4898 - Updated logging for top level and cleaned termination
-rw-r--r--server/sonar-process/src/main/java/org/sonar/process/Process.java4
-rw-r--r--server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java3
-rw-r--r--sonar-application/src/main/java/org/sonar/application/StartServer.java16
3 files changed, 18 insertions, 5 deletions
diff --git a/server/sonar-process/src/main/java/org/sonar/process/Process.java b/server/sonar-process/src/main/java/org/sonar/process/Process.java
index d7fef28593d..dfcaca18022 100644
--- a/server/sonar-process/src/main/java/org/sonar/process/Process.java
+++ b/server/sonar-process/src/main/java/org/sonar/process/Process.java
@@ -151,7 +151,7 @@ public abstract class Process implements ProcessMXBean {
public abstract void onTerminate();
public final void start() {
- LOGGER.trace("Process[{}]::start() START", name);
+ LOGGER.debug("Process[{}]::start() START", name);
if (this.port != null) {
lastPing = System.currentTimeMillis();
pingTask = monitor.scheduleWithFixedDelay(breakOnMissingPing, 5, 5, TimeUnit.SECONDS);
@@ -171,6 +171,6 @@ public abstract class Process implements ProcessMXBean {
}
this.onTerminate();
}
- LOGGER.debug("Process[{}]::terminate() END", name);
+ LOGGER.trace("Process[{}]::terminate() END", name);
}
}
diff --git a/server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java b/server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java
index 04fa01d26d2..d752c91faa4 100644
--- a/server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java
+++ b/server/sonar-process/src/main/java/org/sonar/process/ProcessWrapper.java
@@ -153,11 +153,11 @@ public class ProcessWrapper extends Thread {
e.printStackTrace();
} finally {
LOGGER.info("ProcessThread has been interrupted. Killing process.");
- process.destroy();
waitUntilFinish(outputGobbler);
waitUntilFinish(errorGobbler);
closeStreams(process);
}
+ //process.destroy(); //Uncertain if this is required or not...
LOGGER.trace("ProcessWrapper::run() END");
}
@@ -171,7 +171,6 @@ public class ProcessWrapper extends Thread {
private void waitUntilFinish(@Nullable Thread thread) {
if (thread != null) {
- //TODO kill after X amount of time (if process does not exit by itself).
try {
thread.join();
} catch (InterruptedException e) {
diff --git a/sonar-application/src/main/java/org/sonar/application/StartServer.java b/sonar-application/src/main/java/org/sonar/application/StartServer.java
index 822ff487e0d..d7a8a89aaa5 100644
--- a/sonar-application/src/main/java/org/sonar/application/StartServer.java
+++ b/sonar-application/src/main/java/org/sonar/application/StartServer.java
@@ -19,6 +19,8 @@
*/
package org.sonar.application;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.sonar.process.Monitor;
import org.sonar.process.NetworkUtils;
import org.sonar.process.ProcessWrapper;
@@ -30,13 +32,17 @@ public class StartServer {
private ProcessWrapper elasticsearch;
private ProcessWrapper server;
+ private static Logger LOGGER = LoggerFactory.getLogger(StartServer.class);
+
public StartServer() throws Exception {
Installation installation = new Installation();
Thread shutdownHook = new Thread(new Runnable() {
@Override
public void run() {
+ LOGGER.info("JVM Shutdown start");
stop();
+ LOGGER.info("JVM Shutdown end");
}
});
Runtime.getRuntime().addShutdownHook(shutdownHook);
@@ -86,12 +92,20 @@ public class StartServer {
}
public void stop() {
+ LOGGER.debug("StartServer::stop() START");
if (monitor != null) {
+ LOGGER.trace("StartServer::stop() STOP MONITOR");
monitor.interrupt();
+ monitor = null;
+
+ LOGGER.trace("StartServer::stop() STOP ES");
terminateAndWait(elasticsearch);
+
+ LOGGER.trace("StartServer::stop() STOP SQ");
terminateAndWait(server);
- monitor = null;
}
+ LOGGER.trace("StartServer::stop() END");
+
}
private void terminateAndWait(@Nullable ProcessWrapper process) {