while (h != null) { if (h.value().handleUnknownProperty(this, p, deser, instanceOrClass, propName)) { return true;
while (h != null) { Object instance = h.value().handleWeirdStringValue(this, targetClass, value, msg); if (instance != DeserializationProblemHandler.NOT_HANDLED) {
return handleMissingInstantiator(ctxt, instClass, p, msg);
@Override public JavaType handleUnknownTypeId(DeserializationContext ctxt, JavaType baseType, String subTypeId, TypeIdResolver idResolver, String failureMsg) throws IOException { if (baseType.getRawClass().equals(RetentionStrategyConfig.class)) { return SimpleType.constructUnsafe(UnknownRetentionStrategyConfig.class); } return super.handleUnknownTypeId(ctxt, baseType, subTypeId, idResolver, failureMsg); } }
LinkedNode<DeserializationProblemHandler> h = _config.getProblemHandlers(); while (h != null) { Object instance = h.value().handleUnexpectedToken(this, instClass, t, p, msg); if (instance != DeserializationProblemHandler.NOT_HANDLED) {
while (h != null) { JavaType type = h.value().handleMissingTypeId(this, baseType, idResolver, extraDesc); if (type != null) { if (type.hasRawClass(Void.class)) {
while (h != null) { Object instance = h.value().handleInstantiationProblem(this, instClass, argument, t); if (instance != DeserializationProblemHandler.NOT_HANDLED) {
while (h != null) { Object key = h.value().handleWeirdNumberValue(this, targetClass, value, msg); if (key != DeserializationProblemHandler.NOT_HANDLED) {
while (h != null) { Object key = h.value().handleWeirdKey(this, keyClass, keyValue, msg); if (key != DeserializationProblemHandler.NOT_HANDLED) {
while (h != null) { JavaType type = h.value().handleUnknownTypeId(this, baseType, id, idResolver, extraDesc); if (type != null) { if (type.hasRawClass(Void.class)) {
@Override public Object handleUnexpectedToken(DeserializationContext ctxt, Class<?> targetType, JsonToken t, JsonParser p, String failureMsg) throws IOException { if (p.getCurrentName().equals("@type") && t == JsonToken.START_ARRAY) { // Handle multi-valued @types, only current known cases are oa:SvgSelector and oa:CssStyle // in combination with cnt:ContentAsText ObjectMapper mapper = (ObjectMapper) p.getCodec(); String typeName = StreamSupport.stream(((ArrayNode) mapper.readTree(p)).spliterator(), false) .map(JsonNode::textValue) .filter(v -> !v.equals(ContentAsText.TYPE)) .findFirst().orElse(null); if (typeName != null) { return typeName; } } return super.handleUnexpectedToken(ctxt, targetType, t, p, failureMsg); }
@Override public JavaType handleMissingTypeId(DeserializationContext ctxt, JavaType baseType, TypeIdResolver idResolver, String failureMsg) throws IOException { if (baseType.getRawClass() == Feature.class) { return idResolver.typeFromId(ctxt, "Feature"); } return super.handleMissingTypeId(ctxt, baseType, idResolver, failureMsg); }
while (h != null) { Object instance = h.value().handleInstantiationProblem(this, instClass, argument, t); if (instance != DeserializationProblemHandler.NOT_HANDLED) {
while (h != null) { Object key = h.value().handleWeirdNumberValue(this, targetClass, value, msg); if (key != DeserializationProblemHandler.NOT_HANDLED) {
while (h != null) { Object key = h.value().handleWeirdKey(this, keyClass, keyValue, msg); if (key != DeserializationProblemHandler.NOT_HANDLED) {
@Override public boolean handleUnknownProperty( DeserializationContext ctxt, JsonParser jp, JsonDeserializer<?> deserializer, Object beanOrClass, String propertyName) throws IOException, JsonProcessingException { if (jsonErrorConsumer != null) { jsonErrorConsumer.accept(new JsonError( "Unknown property: " + propertyName, jp.getParsingContext(), null)); } return super.handleUnknownProperty( ctxt, jp, deserializer, beanOrClass, propertyName); } };
@Override public Object handleWeirdStringValue(final DeserializationContext ctxt, final Class<?> targetType, final String valueToConvert, final String failureMsg) throws IOException { if (targetType.equals(RegisteredServiceMultifactorPolicy.FailureModes.class)) { if (StringUtils.equals("NOT_SET", valueToConvert)) { LOGGER.warn("Found legacy attribute value [{}] which will be converted to [{}] as part of a service multifactor authentication policy." + "The definition SHOULD manually be upgraded to the new supported syntax", valueToConvert, RegisteredServiceMultifactorPolicy.FailureModes.UNDEFINED); return RegisteredServiceMultifactorPolicy.FailureModes.UNDEFINED; } } return super.handleWeirdStringValue(ctxt, targetType, valueToConvert, failureMsg); } }
while (h != null) { Object instance = h.value().handleMissingInstantiator(this, instClass, valueInst, p, msg); if (instance != DeserializationProblemHandler.NOT_HANDLED) {
@Override public JavaType handleUnknownTypeId(DeserializationContext ctxt, JavaType baseType, String subTypeId, TypeIdResolver idResolver, String failureMsg) throws IOException { if (baseType.getRawClass().equals(RetentionStrategyConfig.class)) { return SimpleType.constructUnsafe(UnknownRetentionStrategyConfig.class); } return super.handleUnknownTypeId(ctxt, baseType, subTypeId, idResolver, failureMsg); } }
Object instance = h.value().handleUnexpectedToken(this, instClass, t, p, msg); if (instance != DeserializationProblemHandler.NOT_HANDLED) {