Skip to content

Commit

Permalink
Restore defensive access to volatile field in getBeanClassName()
Browse files Browse the repository at this point in the history
Closes gh-30773
  • Loading branch information
jhoeller committed Jun 29, 2023
1 parent 3cb746c commit 0a20c8a
Showing 1 changed file with 3 additions and 2 deletions.
Expand Up @@ -390,7 +390,8 @@ public void setBeanClassName(@Nullable String beanClassName) {
@Override
@Nullable
public String getBeanClassName() {
return (this.beanClass instanceof Class<?> clazz ? clazz.getName() : (String) this.beanClass);
Object beanClassObject = this.beanClass; // defensive access to volatile beanClass field
return (beanClassObject instanceof Class<?> clazz ? clazz.getName() : (String) beanClassObject);
}

/**
Expand Down Expand Up @@ -423,7 +424,7 @@ public void setBeanClass(@Nullable Class<?> beanClass) {
* @see #resolveBeanClass(ClassLoader)
*/
public Class<?> getBeanClass() throws IllegalStateException {
Object beanClassObject = this.beanClass;
Object beanClassObject = this.beanClass; // defensive access to volatile beanClass field
if (beanClassObject == null) {
throw new IllegalStateException("No bean class specified on bean definition");
}
Expand Down

0 comments on commit 0a20c8a

Please sign in to comment.