diff --git a/headless-services/commons/commons-boot-app-cli/pom.xml b/headless-services/commons/commons-boot-app-cli/pom.xml
index d4964e87a..fb6fafe01 100644
--- a/headless-services/commons/commons-boot-app-cli/pom.xml
+++ b/headless-services/commons/commons-boot-app-cli/pom.xml
@@ -23,6 +23,11 @@
commons-io
${commons-io-version}
+
+ commons-codec
+ commons-codec
+ ${commons-codec-version}
+
com.sun
diff --git a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/AbstractSpringBootApp.java b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/AbstractSpringBootApp.java
index c80cd19ec..7e83606c5 100644
--- a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/AbstractSpringBootApp.java
+++ b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/AbstractSpringBootApp.java
@@ -31,6 +31,7 @@ import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
+import org.apache.commons.codec.digest.DigestUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -207,28 +208,29 @@ public abstract class AbstractSpringBootApp implements SpringBootApp {
String domain = getDomainForActuator();
Object json = getBeansFromActuator(domain);
- MessageDigest md = MessageDigest.getInstance("MD5");
- String md5 = new String(md.digest(json.toString().getBytes("UTF-8")));
+ if (json != null) {
+ String md5 = DigestUtils.md5Hex(json.toString());
- synchronized(this) {
- if (cachedBeansModel == null || !md5.equals(cachedBeansModelMD5)) {
+ synchronized(this) {
+ if (cachedBeansModel == null || !md5.equals(cachedBeansModelMD5)) {
- cachedBeansModel = LiveBeansModel.parse(gson.toJson(json));
- cachedBeansModelMD5 = md5;
+ cachedBeansModel = LiveBeansModel.parse(gson.toJson(json));
+ cachedBeansModelMD5 = md5;
- logger.debug("Got {} beans for {}", cachedBeansModel.getBeanNames().size(), this);
- }
- else {
- logger.debug("Got {} beans for {} - from cache", cachedBeansModel.getBeanNames().size(), this);
+ logger.debug("Got {} beans for {}", cachedBeansModel.getBeanNames().size(), this);
+ }
+ else {
+ logger.debug("Got {} beans for {} - from cache", cachedBeansModel.getBeanNames().size(), this);
+ }
}
+
+ return cachedBeansModel;
}
-
- return cachedBeansModel;
-
} catch (Exception e) {
logger.error("Error parsing beans", e);
- return LiveBeansModel.builder().build();
}
+
+ return LiveBeansModel.builder().build();
}
private Object getBeansFromActuator(String domain) throws Exception {
diff --git a/headless-services/commons/pom.xml b/headless-services/commons/pom.xml
index fb4c539a4..595acd128 100644
--- a/headless-services/commons/pom.xml
+++ b/headless-services/commons/pom.xml
@@ -86,6 +86,7 @@
3.1.5.RELEASE
0.7.5.RELEASE
2.4
+ 1.11