|
32 | 32 | import org.slf4j.Logger; |
33 | 33 | import org.slf4j.LoggerFactory; |
34 | 34 |
|
| 35 | +import org.springframework.aop.support.AopUtils; |
35 | 36 | import org.springframework.beans.BeansException; |
36 | 37 | import org.springframework.beans.factory.InitializingBean; |
37 | 38 | import org.springframework.context.ApplicationContext; |
@@ -116,18 +117,20 @@ public Class<?> getSpringConvertedType(Class<?> clazz) { |
116 | 117 | Field convertersField = FieldUtils.getDeclaredField(GenericConversionService.class, CONVERTERS, true); |
117 | 118 | if (convertersField != null) { |
118 | 119 | Object converters; |
119 | | - try { |
120 | | - converters = convertersField.get(formattingConversionService); |
121 | | - convertersField = FieldUtils.getDeclaredField(converters.getClass(), CONVERTERS, true); |
122 | | - Map<ConvertiblePair, Object> springConverters = (Map) convertersField.get(converters); |
123 | | - Optional<ConvertiblePair> convertiblePairOptional = springConverters.keySet().stream().filter(convertiblePair -> convertiblePair.getTargetType().equals(clazz)).findAny(); |
124 | | - if (convertiblePairOptional.isPresent()) { |
125 | | - ConvertiblePair convertiblePair = convertiblePairOptional.get(); |
126 | | - result = convertiblePair.getSourceType(); |
| 120 | + if (!AopUtils.isAopProxy(formattingConversionService)){ |
| 121 | + try { |
| 122 | + converters = convertersField.get(formattingConversionService); |
| 123 | + convertersField = FieldUtils.getDeclaredField(converters.getClass(), CONVERTERS, true); |
| 124 | + Map<ConvertiblePair, Object> springConverters = (Map) convertersField.get(converters); |
| 125 | + Optional<ConvertiblePair> convertiblePairOptional = springConverters.keySet().stream().filter(convertiblePair -> convertiblePair.getTargetType().equals(clazz)).findAny(); |
| 126 | + if (convertiblePairOptional.isPresent()) { |
| 127 | + ConvertiblePair convertiblePair = convertiblePairOptional.get(); |
| 128 | + result = convertiblePair.getSourceType(); |
| 129 | + } |
| 130 | + } |
| 131 | + catch (IllegalAccessException e) { |
| 132 | + LOGGER.warn(e.getMessage()); |
127 | 133 | } |
128 | | - } |
129 | | - catch (IllegalAccessException e) { |
130 | | - LOGGER.warn(e.getMessage()); |
131 | 134 | } |
132 | 135 | } |
133 | 136 | return result; |
|
0 commit comments