Commit dc33ec1a authored by Andy Wilkinson's avatar Andy Wilkinson

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
parents 3cc22ecf 7967c64d
/* /*
* 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<?> ...@@ -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;
......
/* /*
* 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 { ...@@ -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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment