ASM annotation visitor defensively accesses enum constants

Issue: SPR-15442
This commit is contained in:
Juergen Hoeller 2017-04-12 15:36:18 +02:00
parent 1735ba22cb
commit 093e573ace
1 changed files with 2 additions and 1 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2016 the original author or authors. * Copyright 2002-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.
@ -80,6 +80,7 @@ abstract class AbstractRecursiveAnnotationVisitor extends AnnotationVisitor {
Class<?> enumType = this.classLoader.loadClass(Type.getType(asmTypeDescriptor).getClassName()); Class<?> enumType = this.classLoader.loadClass(Type.getType(asmTypeDescriptor).getClassName());
Field enumConstant = ReflectionUtils.findField(enumType, attributeValue); Field enumConstant = ReflectionUtils.findField(enumType, attributeValue);
if (enumConstant != null) { if (enumConstant != null) {
ReflectionUtils.makeAccessible(enumConstant);
valueToUse = enumConstant.get(null); valueToUse = enumConstant.get(null);
} }
} }