-
Bug
-
Resolution: Fixed
-
Minecraft 1.12 Pre-Release 2, Minecraft 1.12 Pre-Release 3, Minecraft 1.12 Pre-Release 5
-
Confirmed
The bug
Setting a ConversionTime for a zombie villager without setting ConversionPlayerLeast and ConversionPlayerMost crashes the server.
crash-2017-05-17_21.03.51-server.txt (1.12-pre3, 1.12-pre5)
Description: Ticking entity java.lang.NullPointerException: Ticking entity at amr.b(SourceFile:2627) at ads.dr(SourceFile:186) at ads.B_(SourceFile:113) at amr.a(SourceFile:1514) at om.a(SourceFile:714) at amr.h(SourceFile:1499) at amr.k(SourceFile:1382) at om.k(SourceFile:547) at net.minecraft.server.MinecraftServer.D(SourceFile:634) at net.minecraft.server.MinecraftServer.C(SourceFile:562) at cgx.C(SourceFile:154) at net.minecraft.server.MinecraftServer.run(SourceFile:466) at java.lang.Thread.run(Thread.java:745)
How to reproduce
/summon zombie_villager ~ ~ ~ {ConversionTime:0}
Code analysis
Based on 1.12-pre3 decompiled using CFR
It looks like the UUID of the player who started the conversion is compared with the UUIDs of online players to then trigger the advancement trigger cured_zombie_villager. The problem is that it is not tested if the passed UUID is null which causes a NullPointerException when the method equals is called for it.