diff --git a/src/main/java/com/codingrodent/jackson/crypto/EncryptedJsonDeserializer.java b/src/main/java/com/codingrodent/jackson/crypto/EncryptedJsonDeserializer.java index a27b4d1..35c44ca 100644 --- a/src/main/java/com/codingrodent/jackson/crypto/EncryptedJsonDeserializer.java +++ b/src/main/java/com/codingrodent/jackson/crypto/EncryptedJsonDeserializer.java @@ -35,16 +35,16 @@ of this software and associated documentation files (the "Software"), to deal */ public class EncryptedJsonDeserializer extends JsonDeserializer implements ContextualDeserializer { private final EncryptionService service; - private final JsonDeserializer baseDeserializer; + private final JsonDeserializer baseDeserializer; private final BeanProperty property; - public EncryptedJsonDeserializer(final EncryptionService service, final JsonDeserializer baseDeserializer) { + public EncryptedJsonDeserializer(final EncryptionService service, final JsonDeserializer baseDeserializer) { this.service = service; this.baseDeserializer = baseDeserializer; this.property = null; } - public EncryptedJsonDeserializer(final EncryptionService service, final JsonDeserializer wrapped, final BeanProperty property) { + public EncryptedJsonDeserializer(final EncryptionService service, final JsonDeserializer wrapped, final BeanProperty property) { this.service = service; this.baseDeserializer = wrapped; this.property = property; @@ -56,19 +56,20 @@ public EncryptedJsonDeserializer(final EncryptionService service, final JsonDese * Encrypted field deserializer */ @Override - public Object deserialize(final JsonParser parser, final DeserializationContext context) throws JsonMappingException { - JsonDeserializer deserializer = baseDeserializer; - if (deserializer instanceof ContextualDeserializer) { - deserializer = ((ContextualDeserializer) deserializer).createContextual(context, property); - } - return service.decrypt(parser, deserializer, context, null == property ? null : property.getType()); + public Object deserialize(final JsonParser parser, final DeserializationContext context) { + return service.decrypt(parser, baseDeserializer, context, property != null ? property.getType() : null); } /** * {@inheritDoc} */ @Override - public JsonDeserializer createContextual(final DeserializationContext context, final BeanProperty property) { - return new EncryptedJsonDeserializer(service, baseDeserializer, property); + public JsonDeserializer createContextual(final DeserializationContext context, final BeanProperty property) throws JsonMappingException { + JsonDeserializer deserializer = baseDeserializer; + if (deserializer instanceof ContextualDeserializer) { + deserializer = ((ContextualDeserializer) deserializer).createContextual(context, property); + } + + return new EncryptedJsonDeserializer(service, deserializer, property); } }