I had a look at the changes and ran them against my unit tests from pull request 133. I really like the way that you implemented this fix, I think it is much more elegant than my fix. I didn't know about the (de)serialization modifiers, that is a much better way to do it.
I had a NPE exception when i ran my test at first and was about to upload a pull request with a suggested fix but then when I rebased my changes I saw that you already fixed it, just an hour after I fetched from the upstream
I did notice however that you only applied the PersistentProperty null check to serialization. My unit tests indicated that this needs to be added to deserialization also, since the PersistentPropery will be null during serialization if @JsonProperty is used (i.e. if a field 'alias' is being supplied) since the name of the JSON field won't match the name the actual class property name.
One other rather obvious thing to note is that there would of course need to be more work done to cover the scenario where the @JsonProperty annotation is applied to an association property or an ID property. I would hope that this is more of an edge case but it is of course still a possible scenario.
I was thinking about how to solve this and I thought that one possible solution might be to build an 'alias' map during construction of the (de)serialization modifiers by scanning the domain classes for @JsonProperty annotations. This map could then be checked at run time in the case that a PersistentProperty cannot be found.
It also briefly occurred to me that a these fields could be added to the PersistentEntity property cache in the org.springframework.data.mapping.context.AbstractMappingContext class. I quickly discarded this shit idea however since I think it would be far too invasive since this class lives in spring data commons. The other bad thing about this shit idea is that this would mean that the class would then have knowledge of Jackson annotations, introducing tight coupling.
You probably have a better idea but I thought I would offer up my suggestions anyhow.
For what it's worth I went ahead and created pull request #136 since I thought that the unit tests in this pull request might still be useful to help with reproducing the issue that occurs during deserialization (related to the use of the @JsonProperty annotation).