|
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