The problem is that the current approach can lead to a memory leak because the rest of the code isn't completed.

Also this object can't be used anymore (when the destroy completes) anyway. So from a user perspective the operation is done.

Personally I think that lifecycle of a distributed object in Hazelcast is broken. In hznextgen is fixed this issue.