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/23 11:53:30 UTC
karaf git commit: [KARAF-3693]only update the instances.properties
when the read operation detect instance pid changes
Repository: karaf
Updated Branches:
refs/heads/karaf-2.x 38eebac42 -> 6aa141a74
[KARAF-3693]only update the instances.properties when the read operation detect instance pid changes
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/6aa141a7
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/6aa141a7
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/6aa141a7
Branch: refs/heads/karaf-2.x
Commit: 6aa141a74029d60495d166b6c1c0c804909b9caa
Parents: 38eebac
Author: Freeman Fang <fr...@gmail.com>
Authored: Thu Apr 23 17:53:10 2015 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Thu Apr 23 17:53:10 2015 +0800
----------------------------------------------------------------------
.../karaf/admin/internal/AdminServiceImpl.java | 26 ++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/6aa141a7/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
----------------------------------------------------------------------
diff --git a/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java b/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
index 092e6e0..45fd465 100644
--- a/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
+++ b/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
@@ -818,6 +818,7 @@ public class AdminServiceImpl implements AdminService {
}
int getInstancePid(final String name) {
+ boolean updateInstanceProperties = isInstancePidNeedUpdate(name);
return execute(new Task<Integer>() {
public Integer call(State state) throws IOException {
InstanceState instance = state.instances.get(name);
@@ -827,7 +828,7 @@ public class AdminServiceImpl implements AdminService {
checkPid(instance);
return instance.pid;
}
- }, false);
+ }, updateInstanceProperties);
}
String getInstanceJavaOpts(final String name) {
@@ -856,6 +857,7 @@ public class AdminServiceImpl implements AdminService {
}
String getInstanceState(final String name) {
+ boolean updateInstanceProperties = isInstancePidNeedUpdate(name);
return execute(new Task<String>() {
public String call(State state) throws IOException {
InstanceState instance = state.instances.get(name);
@@ -884,7 +886,7 @@ public class AdminServiceImpl implements AdminService {
return Instance.STARTING;
}
}
- }, true);
+ }, updateInstanceProperties);
}
private boolean deleteFile(File fileToDelete) {
@@ -1237,5 +1239,25 @@ public class AdminServiceImpl implements AdminService {
}
}, true);
}
+
+ private Boolean isInstancePidNeedUpdate(final String name) {
+ return execute(new Task<Boolean>() {
+ public Boolean call(State state) throws IOException {
+ InstanceState instance = state.instances.get(name);
+ if (instance == null) {
+ throw new IllegalArgumentException("Instance " + name + " not found");
+ }
+ int origialPid = instance.pid;
+ checkPid(instance);
+ int newPid = instance.pid;
+ if (origialPid == newPid) {
+ return false;
+ } else {
+ return true;
+ }
+
+ }
+ }, false);
+ }
}