I can confirm that moving the "return" statement one bracket up fixes the issue on a 1.12.2 server.
This is the diff for a CraftBukkit-Server:
--- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -630,9 +630,10 @@ public class WorldServer extends World implements IAsyncTaskHandler { if (iblockdata.getMaterial() != Material.AIR && iblockdata.getBlock() == block) { iblockdata.getBlock().b((World) this, blockposition, iblockdata, this.random); } + + return; // Fix MC-120709 } - return; } i = 1; --
I can confirm that moving the "return" statement one bracket up fixes the issue on a 1.12.2 server.
This is the diff for a CraftBukkit-Server: