From c1997a1705278d4ba39d64102e7ce76894f1e30d Mon Sep 17 00:00:00 2001 From: Wido den Hollander Date: Thu, 15 Sep 2016 12:18:21 +0200 Subject: [PATCH] CLOUDSTACK-9071: Properly parse stats.output.uri in StatsCollector Both host and path could have been NULL which causes the StatsCollector no to start properly. By checking if the Strings are not Empty or Null we make sure the StatsCollector always runs and does not prevent the Management Server from starting. Signed-off-by: Wido den Hollander Conflicts: server/src/com/cloud/server/StatsCollector.java --- server/src/com/cloud/server/StatsCollector.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/server/StatsCollector.java b/server/src/com/cloud/server/StatsCollector.java index ca86cfd0804..ee9e41dd53f 100644 --- a/server/src/com/cloud/server/StatsCollector.java +++ b/server/src/com/cloud/server/StatsCollector.java @@ -34,6 +34,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import org.apache.cloudstack.utils.usage.UsageUtils; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -271,12 +272,18 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc s_logger.info(scheme + " is not a valid protocol for external statistics. No statistics will be send."); } - externalStatsHost = uri.getHost(); + if (!StringUtils.isEmpty(uri.getHost())) { + externalStatsHost = uri.getHost(); + } + externalStatsPort = uri.getPort(); - externalStatsPrefix = uri.getPath().substring(1); + + if (!StringUtils.isEmpty(uri.getPath())) { + externalStatsPrefix = uri.getPath().substring(1); + } /* Append a dot (.) to the prefix if it is set */ - if (externalStatsPrefix != null && !externalStatsPrefix.equals("")) { + if (!StringUtils.isEmpty(externalStatsPrefix)) { externalStatsPrefix += "."; } else { externalStatsPrefix = "";