Expected: The method getState()
BlockState block = Main.getInstance().getServer().getWorld("world").getBlockAt(coord_sign.get(0), coord_sign.get(1), coord_sign.get(2)).getState();
should return a block state which can then be used to set text on a sign.
Resulting: The server throws an exception saying the tile is null while also detecting it as sign:
java.lang.IllegalStateException: Tile is null, asynchronous access? CraftBlock{pos=BlockPosition{x=235, y=114, z=238},type=OAK_WALL_SIGN,data=Block{minecraft:oak_wall_sign}[facing=south,waterlogged=false],fluid=net.minecraft.server.v1_15_R1.FluidTypeEmpty@b2c5e07}java.lang.IllegalStateException: Tile is null, asynchronous access? CraftBlock{pos=BlockPosition{x=235, y=114, z=238},type=OAK_WALL_SIGN,data=Block{minecraft:oak_wall_sign}[facing=south,waterlogged=false],fluid=net.minecraft.server.v1_15_R1.FluidTypeEmpty@b2c5e07} at com.google.common.base.Preconditions.checkState(Preconditions.java:444) at org.bukkit.craftbukkit.v1_15_R1.block.CraftBlockEntityState.<init>(CraftBlockEntityState.java:27) at org.bukkit.craftbukkit.v1_15_R1.block.CraftSign.<init>(CraftSign.java:19) at org.bukkit.craftbukkit.v1_15_R1.block.CraftBlock.getState(CraftBlock.java:327) at io.github.broesel233.socket.ClientHandler.run(ClientHandler.java:174) at java.lang.Thread.run(Thread.java:748)
Steps to reproduce: Call the method getState() in a Thread that is not the Main Thread. This only happened after upgrading from 1.12.2 to 1.15.1