diff --git a/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/utils/EntityManagerUtil.java b/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/utils/EntityManagerUtil.java index 3091fa081cb32c9a2c48f8a1c5f7c89a60b188c4..a2cb0f54dc044f3bf41617ae8ae9051a4391ff12 100644 --- a/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/utils/EntityManagerUtil.java +++ b/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/utils/EntityManagerUtil.java @@ -22,6 +22,9 @@ public class EntityManagerUtil extends EntityManagerFactoryAccessor { public void closeEntityManager() { EntityManagerHolder emHolder = (EntityManagerHolder) TransactionSynchronizationManager.getResource(getEntityManagerFactory()); + if (emHolder == null) { + return; + } logger.debug("Closing JPA EntityManager in EntityManagerUtil"); EntityManagerFactoryUtils.closeEntityManager(emHolder.getEntityManager()); } diff --git a/apollo-client/src/main/java/com/ctrip/framework/apollo/Config.java b/apollo-client/src/main/java/com/ctrip/framework/apollo/Config.java index c66bf041ccbbbfd0681490e67399b81a435a7186..80e375ee06957bfb98767e08db2f83039152f311 100644 --- a/apollo-client/src/main/java/com/ctrip/framework/apollo/Config.java +++ b/apollo-client/src/main/java/com/ctrip/framework/apollo/Config.java @@ -100,7 +100,7 @@ public interface Config { * exist. * * @param key the property name - * @param delimiter + * @param delimiter the delimiter regex * @param defaultValue the default value when key is not found * @return */ diff --git a/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/ConfigServiceLocator.java b/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/ConfigServiceLocator.java index 29db2ca706d09e8e325618b2dcee54225842ea88..5356ebc1196714891390e7d880c3abb2183a3453 100644 --- a/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/ConfigServiceLocator.java +++ b/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/ConfigServiceLocator.java @@ -114,9 +114,14 @@ public class ConfigServiceLocator implements Initializable { transaction.addData("Url", url); try { HttpResponse> response = m_httpUtil.doGet(request, m_responseType); - m_configServices.set(response.getBody()); - logConfigServicesToCat(response.getBody()); transaction.setStatus(Message.SUCCESS); + List services = response.getBody(); + if (services == null || services.isEmpty()) { + logConfigServiceToCat("Empty response!"); + continue; + } + m_configServices.set(services); + logConfigServicesToCat(services); return; } catch (Throwable ex) { Cat.logError(ex); @@ -151,7 +156,11 @@ public class ConfigServiceLocator implements Initializable { private void logConfigServicesToCat(List serviceDtos) { for (ServiceDTO serviceDto : serviceDtos) { - Cat.logEvent("Apollo.Config.Services", serviceDto.getHomepageUrl()); + logConfigServiceToCat(serviceDto.getHomepageUrl()); } } + + private void logConfigServiceToCat(String serviceUrl) { + Cat.logEvent("Apollo.Config.Services", serviceUrl); + } } diff --git a/apollo-common/src/main/java/com/ctrip/framework/apollo/common/datasource/TitanSettings.java b/apollo-common/src/main/java/com/ctrip/framework/apollo/common/datasource/TitanSettings.java index c9f360b8c294e6c0b508a963a54d85506ec39d4b..c4ab1c18918aea3dbeb5367098eb3a73b69976a6 100644 --- a/apollo-common/src/main/java/com/ctrip/framework/apollo/common/datasource/TitanSettings.java +++ b/apollo-common/src/main/java/com/ctrip/framework/apollo/common/datasource/TitanSettings.java @@ -30,6 +30,9 @@ public class TitanSettings { public String getTitanUrl() { Env env = EnvUtils.transformEnv(Foundation.server().getEnvType()); + if (env == null) { + return ""; + } switch (env) { case FAT: case FWS: @@ -46,6 +49,9 @@ public class TitanSettings { public String getTitanDbname() { Env env = EnvUtils.transformEnv(Foundation.server().getEnvType()); + if (env == null) { + return ""; + } switch (env) { case FAT: case FWS: diff --git a/apollo-demo/src/main/java/ApolloConfigDemo.java b/apollo-demo/src/main/java/ApolloConfigDemo.java index 35bfcc97bca17815ce23d68b58e3360d28b1bf76..d09d5eec3c9adfe84c4cc06046e87db793fd0fe5 100644 --- a/apollo-demo/src/main/java/ApolloConfigDemo.java +++ b/apollo-demo/src/main/java/ApolloConfigDemo.java @@ -1,6 +1,3 @@ - -import com.google.common.base.Strings; - import com.ctrip.framework.apollo.Config; import com.ctrip.framework.apollo.ConfigChangeListener; import com.ctrip.framework.apollo.ConfigService; @@ -39,7 +36,7 @@ public class ApolloConfigDemo implements ConfigChangeListener { while (true) { System.out.print("> "); String input = new BufferedReader(new InputStreamReader(System.in)).readLine(); - if (Strings.isNullOrEmpty(input)) { + if (input == null || input.length() == 0) { continue; } input = input.trim(); diff --git a/apollo-portal/src/main/scripts/startup.sh b/apollo-portal/src/main/scripts/startup.sh index a4b1c11b88f583f8f9d856db2a299735962df348..5c3a23ad6f7b2726aaf7657a81003a462ffc2867 100644 --- a/apollo-portal/src/main/scripts/startup.sh +++ b/apollo-portal/src/main/scripts/startup.sh @@ -2,7 +2,7 @@ SERVICE_NAME=apollo-portal PATH_TO_JAR=$SERVICE_NAME".jar" -export JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=22 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+ScavengeBeforeFullGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:-ReduceInitialCardMarks -XX:+CMSPermGenSweepingEnabled -XX:CMSInitiatingPermOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8" +export JAVA_OPTS="-server -Xms8192m -Xmx8192m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=3072m -XX:MaxNewSize=3072m -XX:SurvivorRatio=22 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+ScavengeBeforeFullGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:-ReduceInitialCardMarks -XX:+CMSPermGenSweepingEnabled -XX:CMSInitiatingPermOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8" export JAVA_OPTS="$JAVA_OPTS -Xloggc:/opt/logs/100003173/heap_trace.txt -XX:HeapDumpPath=/opt/logs/100003173/HeapDumpOnOutOfMemoryError/" if [[ -z "$JAVA_HOME" && -d /usr/java/latest/ ]]; then