You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jg...@apache.org on 2014/07/26 03:51:57 UTC
[15/50] git commit: [KARAF-1561] Restart Framework from Web Console's
System Information tab results in Karaf dying
[KARAF-1561] Restart Framework from Web Console's System Information tab results in Karaf dying
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/19442ce1
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/19442ce1
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/19442ce1
Branch: refs/remotes/karaf-2.3.x
Commit: 19442ce1c737375056df636e10bb01fd2dbada5f
Parents: 3160b7c
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Jul 11 16:21:56 2014 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Jul 11 16:23:27 2014 +0200
----------------------------------------------------------------------
.../main/java/org/apache/karaf/main/Main.java | 23 +++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/19442ce1/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 65e9ae0..ffd8344 100644
--- a/main/src/main/java/org/apache/karaf/main/Main.java
+++ b/main/src/main/java/org/apache/karaf/main/Main.java
@@ -363,7 +363,18 @@ public class Main {
}
while (true) {
FrameworkEvent event = framework.waitForStop(0);
- if (event.getType() != FrameworkEvent.STOPPED_UPDATE) {
+ if (event.getType() == FrameworkEvent.STOPPED_UPDATE) {
+ unlock();
+ while (framework.getState() != Bundle.STARTING && framework.getState() != Bundle.ACTIVE) {
+ Thread.sleep(10);
+ }
+ new Thread() {
+ @Override
+ public void run() {
+ lock(configProps);
+ }
+ }.start();
+ } else {
return;
}
}
@@ -1395,7 +1406,6 @@ public class Main {
String clz = props.getProperty(PROPERTY_LOCK_CLASS, PROPERTY_LOCK_CLASS_DEFAULT);
lock = (Lock) Class.forName(clz).getConstructor(Properties.class).newInstance(props);
boolean lockLogged = false;
- setStartLevel(lockStartLevel);
while (!exiting) {
if (lock.lock()) {
if (lockLogged) {
@@ -1427,9 +1437,12 @@ public class Main {
startLevelLock.wait(shutdownTimeout);
}
}
- } else if (!lockLogged) {
- LOG.info("Waiting for the lock ...");
- lockLogged = true;
+ } else {
+ setStartLevel(lockStartLevel);
+ if (!lockLogged) {
+ LOG.info("Waiting for the lock ...");
+ lockLogged = true;
+ }
}
Thread.sleep(lockDelay);
}