fix behavior when updating values where the value was previously null by paulovictorv · Pull Request #961 · nitrite/nitrite-java

Context

When trying to update nested documents, if the value was previously null, a NPE was raised. This was because the code inside NitriteDocument::merge wasn't null checking the value after taking it out of the map.

Fix

Added a null check. If the value returned from get is null, I assumed we should follow the default behavior and just replace it with whatever was provided by the method. If not, we then use merge. While fixing this bug I noticed that there's no unit tests for NitriteDocument::merge but they are covered indirectly via the CollectionUpdateTest. I added a new test case to the existing suite.

The code works but I'm up for comments - I'm not sure about the full implications of doing this fix so LMK if there's something I should fix or do differently :)