ASM annotation visitor defensively accesses enum constants
Issue: SPR-15442
This commit is contained in:
parent
1735ba22cb
commit
093e573ace
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue