Merge pull request #9914 from Dennis Kieselhorst
* gh-9914: Avoid NPE in AnnotationsPropertySource if getAnnotations returns null Polish "Avoid NPE in PropertyMappingContextCustomizer" Avoid NPE in PropertyMappingContextCustomizer
This commit is contained in:
commit
dc33ec1ad9
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2016 the original author or authors.
|
* Copyright 2012-2017 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -85,10 +85,13 @@ public class AnnotationsPropertySource extends EnumerablePropertySource<Class<?>
|
||||||
|
|
||||||
private List<Annotation> getMergedAnnotations(Class<?> root, Class<?> source) {
|
private List<Annotation> getMergedAnnotations(Class<?> root, Class<?> source) {
|
||||||
List<Annotation> mergedAnnotations = new ArrayList<Annotation>();
|
List<Annotation> mergedAnnotations = new ArrayList<Annotation>();
|
||||||
for (Annotation annotation : AnnotationUtils.getAnnotations(source)) {
|
Annotation[] annotations = AnnotationUtils.getAnnotations(source);
|
||||||
if (!AnnotationUtils.isInJavaLangAnnotationPackage(annotation)) {
|
if (annotations != null) {
|
||||||
mergedAnnotations
|
for (Annotation annotation : annotations) {
|
||||||
.add(findMergedAnnotation(root, annotation.annotationType()));
|
if (!AnnotationUtils.isInJavaLangAnnotationPackage(annotation)) {
|
||||||
|
mergedAnnotations
|
||||||
|
.add(findMergedAnnotation(root, annotation.annotationType()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return mergedAnnotations;
|
return mergedAnnotations;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2016 the original author or authors.
|
* Copyright 2012-2017 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -79,12 +79,15 @@ class PropertyMappingContextCustomizer implements ContextCustomizer {
|
||||||
Set<Class<?>> components = new LinkedHashSet<Class<?>>();
|
Set<Class<?>> components = new LinkedHashSet<Class<?>>();
|
||||||
Set<Class<?>> propertyMappings = new LinkedHashSet<Class<?>>();
|
Set<Class<?>> propertyMappings = new LinkedHashSet<Class<?>>();
|
||||||
while (beanClass != null) {
|
while (beanClass != null) {
|
||||||
for (Annotation annotation : AnnotationUtils.getAnnotations(beanClass)) {
|
Annotation[] annotations = AnnotationUtils.getAnnotations(beanClass);
|
||||||
if (isAnnotated(annotation, Component.class)) {
|
if (annotations != null) {
|
||||||
components.add(annotation.annotationType());
|
for (Annotation annotation : annotations) {
|
||||||
}
|
if (isAnnotated(annotation, Component.class)) {
|
||||||
if (isAnnotated(annotation, PropertyMapping.class)) {
|
components.add(annotation.annotationType());
|
||||||
propertyMappings.add(annotation.annotationType());
|
}
|
||||||
|
if (isAnnotated(annotation, PropertyMapping.class)) {
|
||||||
|
propertyMappings.add(annotation.annotationType());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
beanClass = beanClass.getSuperclass();
|
beanClass = beanClass.getSuperclass();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue