If you have a 2 node cluster with buddy replication, and you restart one node, that node does not receive a state transfer. See forum thread for details of the exact symptoms.
Problem is this in BuddyManager$AsyncViewHandlerThread.handleEnqueuedViewChange():
// there is a strange case where JGroups issues view changes and just includes self in new views, and then
// quickly corrects it. Happens intermittently on some unit tests. If this is such a case, please ignore.
if (members.newMembers.size() == 1 && members.newMembers.get(0).equals(cache.getLocalAddress()))
Problem is the if condition is always true when the 2nd to last member leaves the group, but returning leaves the last member in a state where it thinks the next to last member is still a buddy. When that node restarts and rejoins the group, the reassign buddies logic sees that the new member is already a buddy and returns without pushing state.