Skip to content

Commit 9281e2a

Browse files
committed
Avoid creating JsonParser for VCAP_* parsing when running outside CF
Closes gh-13437
1 parent 8dbeb68 commit 9281e2a

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudFoundryVcapEnvironmentPostProcessor.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,6 @@ public class CloudFoundryVcapEnvironmentPostProcessor
101101
// Before ConfigFileApplicationListener so values there can use these ones
102102
private int order = ConfigFileApplicationListener.DEFAULT_ORDER - 1;
103103

104-
private final JsonParser parser = JsonParserFactory.getJsonParser();
105-
106104
public void setOrder(int order) {
107105
this.order = order;
108106
}
@@ -117,9 +115,11 @@ public void postProcessEnvironment(ConfigurableEnvironment environment,
117115
SpringApplication application) {
118116
if (CloudPlatform.CLOUD_FOUNDRY.isActive(environment)) {
119117
Properties properties = new Properties();
120-
addWithPrefix(properties, getPropertiesFromApplication(environment),
118+
JsonParser jsonParser = JsonParserFactory.getJsonParser();
119+
addWithPrefix(properties,
120+
getPropertiesFromApplication(environment, jsonParser),
121121
"vcap.application.");
122-
addWithPrefix(properties, getPropertiesFromServices(environment),
122+
addWithPrefix(properties, getPropertiesFromServices(environment, jsonParser),
123123
"vcap.services.");
124124
MutablePropertySources propertySources = environment.getPropertySources();
125125
if (propertySources.contains(
@@ -142,11 +142,12 @@ private void addWithPrefix(Properties properties, Properties other, String prefi
142142
}
143143
}
144144

145-
private Properties getPropertiesFromApplication(Environment environment) {
145+
private Properties getPropertiesFromApplication(Environment environment,
146+
JsonParser parser) {
146147
Properties properties = new Properties();
147148
try {
148149
String property = environment.getProperty(VCAP_APPLICATION, "{}");
149-
Map<String, Object> map = this.parser.parseMap(property);
150+
Map<String, Object> map = parser.parseMap(property);
150151
extractPropertiesFromApplication(properties, map);
151152
}
152153
catch (Exception ex) {
@@ -155,11 +156,12 @@ private Properties getPropertiesFromApplication(Environment environment) {
155156
return properties;
156157
}
157158

158-
private Properties getPropertiesFromServices(Environment environment) {
159+
private Properties getPropertiesFromServices(Environment environment,
160+
JsonParser parser) {
159161
Properties properties = new Properties();
160162
try {
161163
String property = environment.getProperty(VCAP_SERVICES, "{}");
162-
Map<String, Object> map = this.parser.parseMap(property);
164+
Map<String, Object> map = parser.parseMap(property);
163165
extractPropertiesFromServices(properties, map);
164166
}
165167
catch (Exception ex) {

0 commit comments

Comments
 (0)