In Wicket 1.5.x there was no check against the null value of the target of a CompoundPropertyModel.
This allowed to define a CPM based on a possibly value, then being able to refer to sub-properties of that value in through labels included in the markup without fearing a NullPointerException, nice empty labels would be displayed instead.
Now that CPM has been refactored, null values are explicitly rejected, but only in the constructor.
Changing the model through a call to setObject doesn't check the null value and allows the previous behaviour to work again.
(another workaround is to pass Model.of(value) in the constructor).
These are workarounds, the check itself adds no value and removes functionality.