If entitydata is used on an entity, it ignores empty compound tags directly in HandItems and ArmorItems.
If the entity is in a lazy chunk however it doesn't.
Reproduce by e.g.:
-place a command block with the command 'summon Zombie ~ ~1 ~ {ArmorItems:[{},{},{id:leather_chestplate}]}' inside
-place a chain command block with the command 'entitydata @e[r=3] {ArmorItems:[{},{},{},{}]}' inside that the first one points into
-place a redstone block next to the first block
-> result: a zombie with a leather chestplate
-destroy redstone block, tp about 120 blocks away, replace the redstone block using setblock
-tp back or read command feedback
-> result: a zombie without armor
Comments 5
The zombie was in range in both cases as the entitydata affected it in both cases. Setting it to NoAI in the first command block doesn't change anything besides the zombie then not having an ai. I also tested this in multiple worlds and multiple locations. What do you mean with range?
If the range is lowered to 1, the zombie isn't affected, elsewise it is. Targeting the zombie works correctly.
Make sure the zombie was in the range in both cases, make the range larger, give it no ai, etc.