Browse Source

Avoids potential NPE when calling getClass() in RefreshScope

fixes gh-297
pull/298/head
Spencer Gibb 7 years ago
parent
commit
464624e375
No known key found for this signature in database
GPG Key ID: 7788A47380690861
  1. 25
      spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/refresh/RefreshScope.java

25
spring-cloud-context/src/main/java/org/springframework/cloud/context/scope/refresh/RefreshScope.java

@ -112,19 +112,24 @@ public class RefreshScope extends GenericScope @@ -112,19 +112,24 @@ public class RefreshScope extends GenericScope
@EventListener
public void start(ContextRefreshedEvent event) {
if (event.getApplicationContext() == this.context) {
if (this.eager && this.registry != null) {
for (String name : this.context.getBeanDefinitionNames()) {
BeanDefinition definition = this.registry.getBeanDefinition(name);
if (this.getName().equals(definition.getScope())
&& !definition.isLazyInit()) {
this.context.getBean(name).getClass();
}
}
}
if (event.getApplicationContext() == this.context && this.eager
&& this.registry != null) {
eagerlyInitialize();
}
}
private void eagerlyInitialize() {
for (String name : this.context.getBeanDefinitionNames()) {
BeanDefinition definition = this.registry.getBeanDefinition(name);
if (this.getName().equals(definition.getScope()) && !definition.isLazyInit()) {
Object bean = this.context.getBean(name);
if (bean != null) {
bean.getClass();
}
}
}
}
@ManagedOperation(description = "Dispose of the current instance of bean name provided and force a refresh on next method execution.")
public boolean refresh(String name) {
if (!name.startsWith(SCOPED_TARGET_PREFIX)) {

Loading…
Cancel
Save