You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Now that the #1581 took care of the twisted behavior of _isExplicitClassOrOb, I feel confident in what I'm doing :-)
I'm evaluating a JaxbAnnotationIntrospector change below that might cause side effects and be a bad idea after all but...
@Override
- public JsonSerializer<?> findSerializer(Annotated am)+ public Object findSerializer(Annotated am)
{
...
- return null;+ return JsonSerializer.None.class;
}
... nevertheless I found out that the Json(De)Serializer.None is a nifty class that can't currently be utilized with AnnotationIntrospectorPair when the secondary introspector usually just returns null. This patch below changes this behaviour so that the primary implicit/missing/bogus is preferred over the secondary one.
@Override
public Object findSerializer(Annotated am) {
Object r = _primary.findSerializer(am);
- return _isExplicitClassOrOb(r, JsonSerializer.None.class)- ? r : _secondary.findSerializer(am);+ if (!_isExplicitClassOrOb(r, JsonSerializer.None.class)) {+ Object r2 = _secondary.findSerializer(am);+ if (_isExplicitClassOrOb(r2, JsonSerializer.None.class)) {+ r = r2;+ }+ }+ return r;
}
@Override
public Object findKeySerializer(Annotated a) {
Object r = _primary.findKeySerializer(a);
- return _isExplicitClassOrOb(r, JsonSerializer.None.class)- ? r : _secondary.findKeySerializer(a);+ if (!_isExplicitClassOrOb(r, JsonSerializer.None.class)) {+ Object r2 = _secondary.findKeySerializer(a);+ if (_isExplicitClassOrOb(r2, JsonSerializer.None.class)) {+ r = r2;+ }+ }+ return r;
}
@Override
public Object findContentSerializer(Annotated a) {
Object r = _primary.findContentSerializer(a);
- return _isExplicitClassOrOb(r, JsonSerializer.None.class)- ? r : _secondary.findContentSerializer(a);+ if (!_isExplicitClassOrOb(r, JsonSerializer.None.class)) {+ Object r2 = _secondary.findContentSerializer(a);+ if (_isExplicitClassOrOb(r2, JsonSerializer.None.class)) {+ r = r2;+ }+ }+ return r;
}
@Override
public Object findNullSerializer(Annotated a) {
Object r = _primary.findNullSerializer(a);
- return _isExplicitClassOrOb(r, JsonSerializer.None.class)- ? r : _secondary.findNullSerializer(a);+ if (!_isExplicitClassOrOb(r, JsonSerializer.None.class)) {+ Object r2 = _secondary.findNullSerializer(a);+ if (_isExplicitClassOrOb(r2, JsonSerializer.None.class)) {+ r = r2;+ }+ }+ return r;
}
@Deprecated
@@ -626,22 +646,37 @@ public class AnnotationIntrospectorPair
@Override
public Object findDeserializer(Annotated am) {
Object r = _primary.findDeserializer(am);
- return _isExplicitClassOrOb(r, JsonDeserializer.None.class)- ? r : _secondary.findDeserializer(am);+ if (!_isExplicitClassOrOb(r, JsonDeserializer.None.class)) {+ Object r2 = _secondary.findDeserializer(am);+ if (_isExplicitClassOrOb(r2, JsonDeserializer.None.class)) {+ r = r2;+ }+ }+ return r;
}
@Override
public Object findKeyDeserializer(Annotated am) {
Object r = _primary.findKeyDeserializer(am);
- return _isExplicitClassOrOb(r, KeyDeserializer.None.class)- ? r : _secondary.findKeyDeserializer(am);+ if (!_isExplicitClassOrOb(r, JsonDeserializer.None.class)) {+ Object r2 = _secondary.findKeyDeserializer(am);+ if (_isExplicitClassOrOb(r2, JsonDeserializer.None.class)) {+ r = r2;+ }+ }+ return r;
}
@Override
public Object findContentDeserializer(Annotated am) {
Object r = _primary.findContentDeserializer(am);
- return _isExplicitClassOrOb(r, JsonDeserializer.None.class)- ? r : _secondary.findContentDeserializer(am);+ if (!_isExplicitClassOrOb(r, JsonDeserializer.None.class)) {+ Object r2 = _secondary.findContentDeserializer(am);+ if (_isExplicitClassOrOb(r2, JsonDeserializer.None.class)) {+ r = r2;+ }+ }+ return r;
}
@Override
The text was updated successfully, but these errors were encountered:
Now that the #1581 took care of the twisted behavior of
_isExplicitClassOrOb
, I feel confident in what I'm doing :-)I'm evaluating a
JaxbAnnotationIntrospector
change below that might cause side effects and be a bad idea after all but...... nevertheless I found out that the
Json(De)Serializer.None
is a nifty class that can't currently be utilized withAnnotationIntrospectorPair
when the secondary introspector usually just returns null. This patch below changes this behaviour so that the primary implicit/missing/bogus is preferred over the secondary one.The text was updated successfully, but these errors were encountered: