You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2017/09/20 09:10:56 UTC
karaf git commit: [KARAF-5315] Improve Main to deal with SIGTERM
Repository: karaf
Updated Branches:
refs/heads/master 8b02711e4 -> 2e99ce8f6
[KARAF-5315] Improve Main to deal with SIGTERM
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/2e99ce8f
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/2e99ce8f
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/2e99ce8f
Branch: refs/heads/master
Commit: 2e99ce8f6efecf51dc47b11544073319a016ad66
Parents: 8b02711
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Wed Sep 20 11:10:35 2017 +0200
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Wed Sep 20 11:10:35 2017 +0200
----------------------------------------------------------------------
.../main/java/org/apache/karaf/main/Main.java | 24 +++++++++++++-------
.../apache/karaf/main/lock/SimpleFileLock.java | 2 +-
2 files changed, 17 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/2e99ce8f/main/src/main/java/org/apache/karaf/main/Main.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/Main.java b/main/src/main/java/org/apache/karaf/main/Main.java
index 16b0865..2d80607 100644
--- a/main/src/main/java/org/apache/karaf/main/Main.java
+++ b/main/src/main/java/org/apache/karaf/main/Main.java
@@ -77,18 +77,17 @@ public class Main {
*/
public static final String STARTUP_PROPERTIES_FILE_NAME = "startup.properties";
-
- Logger LOG = Logger.getLogger(this.getClass().getName());
+ private static final Logger LOG = Logger.getLogger(Main.class.getName());
private ConfigProperties config;
- private Framework framework = null;
+ private Framework framework;
private final String[] args;
private int exitCode;
private ShutdownCallback shutdownCallback;
private KarafActivatorManager activatorManager;
- private Lock lock;
- private KarafLockCallback lockCallback;
- private boolean exiting;
+ private volatile Lock lock;
+ private final KarafLockCallback lockCallback = new KarafLockCallback();
+ private volatile boolean exiting;
private AutoCloseable shutdownThread;
private Thread monitorThread;
@@ -240,7 +239,6 @@ public class Main {
}
String log4jConfigPath = System.getProperty("karaf.etc") + "/org.ops4j.pax.logging.cfg";
BootstrapLogManager.setProperties(config.props, log4jConfigPath);
- lockCallback = new KarafLockCallback();
InstanceHelper.updateInstancePid(config.karafHome, config.karafBase, true);
BootstrapLogManager.configureLogger(LOG);
@@ -347,7 +345,17 @@ public class Main {
signalHandlerClass
},
(proxy, method, args) -> {
- Main.this.destroy();
+ new Thread() {
+ @Override
+ public void run() {
+ try {
+ exiting = true;
+ framework.stop();
+ } catch (BundleException e) {
+ e.printStackTrace();
+ }
+ }
+ }.start();
return null;
}
);
http://git-wip-us.apache.org/repos/asf/karaf/blob/2e99ce8f/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java b/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java
index 162d488..281a497 100644
--- a/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java
+++ b/main/src/main/java/org/apache/karaf/main/lock/SimpleFileLock.java
@@ -71,7 +71,7 @@ public class SimpleFileLock implements Lock {
return lock != null;
}
- public void release() throws Exception {
+ public synchronized void release() throws Exception {
if (lock != null && lock.isValid()) {
LOG.info("Releasing lock " + lockPath.getPath());
lock.release();