You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ff...@apache.org on 2015/04/08 10:46:08 UTC

karaf git commit: [KARAF-3648]should zero out instance pid in instance.properties when we shutdown an instance from shell (cherry picked from commit 96f96d55bb453a45f816a41f65af006e8edc7aab)

Repository: karaf
Updated Branches:
  refs/heads/master 813d5bfa5 -> 8b7f604c5


[KARAF-3648]should zero out instance pid in instance.properties when we shutdown an instance from shell
(cherry picked from commit 96f96d55bb453a45f816a41f65af006e8edc7aab)


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/8b7f604c
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/8b7f604c
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/8b7f604c

Branch: refs/heads/master
Commit: 8b7f604c5a2b5f533fd98cff350416fb123a009d
Parents: 813d5bf
Author: Freeman Fang <fr...@gmail.com>
Authored: Wed Apr 8 16:43:17 2015 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Wed Apr 8 16:44:03 2015 +0800

----------------------------------------------------------------------
 .../main/java/org/apache/karaf/main/InstanceHelper.java   |  8 +++++---
 main/src/main/java/org/apache/karaf/main/Main.java        | 10 +++++++++-
 2 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/8b7f604c/main/src/main/java/org/apache/karaf/main/InstanceHelper.java
----------------------------------------------------------------------
diff --git a/main/src/main/java/org/apache/karaf/main/InstanceHelper.java b/main/src/main/java/org/apache/karaf/main/InstanceHelper.java
index f276f01..f78c127 100644
--- a/main/src/main/java/org/apache/karaf/main/InstanceHelper.java
+++ b/main/src/main/java/org/apache/karaf/main/InstanceHelper.java
@@ -36,10 +36,10 @@ import org.osgi.framework.launch.Framework;
 
 public class InstanceHelper {
 
-    static void updateInstancePid(final File karafHome, File karafBase) {
+    static void updateInstancePid(final File karafHome, File karafBase, final boolean isStartingInstance) {
         try {
             final String instanceName = System.getProperty("karaf.name");
-            final String pid = getPid();
+            final String pid = isStartingInstance ? getPid() : "0";
 
             final boolean isRoot = karafHome.equals(karafBase);
             
@@ -70,7 +70,9 @@ public class InstanceHelper {
                                 props.setProperty("item.0.pid", pid);
                                 props.setProperty("item.0.root", "true");
                             } else {
-                                throw new IllegalStateException("Child instance started but no root registered in " + propertiesFile);
+                                String errMsg = "Child instance " + (isStartingInstance ? "started" : "stopped") + " but no root registered in ";
+                                throw new IllegalStateException(errMsg + propertiesFile);
+
                             }
                         } else {
                             int count = Integer.parseInt(props.getProperty("count"));

http://git-wip-us.apache.org/repos/asf/karaf/blob/8b7f604c/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 169e31a..12b8c43 100644
--- a/main/src/main/java/org/apache/karaf/main/Main.java
+++ b/main/src/main/java/org/apache/karaf/main/Main.java
@@ -185,6 +185,7 @@ public class Main {
                 main.awaitShutdown();
                 boolean stopped = main.destroy();
                 restart = Boolean.getBoolean("karaf.restart");
+                main.updateInstancePidAfterShutdown();
                 if (!stopped) {
                     if (restart) {
                         System.err.println("Timeout waiting for framework to stop.  Restarting now.");
@@ -214,6 +215,13 @@ public class Main {
     public void setShutdownCallback(ShutdownCallback shutdownCallback) {
         this.shutdownCallback = shutdownCallback;
     }
+    
+    public void updateInstancePidAfterShutdown() throws Exception {
+        if (config == null) {
+            config = new ConfigProperties();
+        }
+        InstanceHelper.updateInstancePid(config.karafHome, config.karafBase, false);
+    }
 
     public void launch() throws Exception {
         config = new ConfigProperties();
@@ -223,7 +231,7 @@ 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);
+        InstanceHelper.updateInstancePid(config.karafHome, config.karafBase, true);
         LOG.addHandler(BootstrapLogManager.getDefaultHandler());
 
         for (String provider : config.securityProviders) {