Cloth Config API (Fabric/Forge/NeoForge)

Cloth Config API (Fabric/Forge/NeoForge)

168M Downloads

GsonConfigSerializer returns null when config is empty, crashing on load

Fourmisain opened this issue ยท 0 comments

commented

Encountered in RandomMcSomethin/fallingleaves#64

When a config file is empty for whatever reason and deserialized using the GsonConfigSerializer, it'll return null, which will NPE inside ConfigManager.load() here.

I thought of registering a load listener to work around that, but since load() is called from ConfigManager's constructor, it is impossible to call registerLoadListener() before load() - which is arguably another issue.

I think a good fix would be to let GsonConfigSerializer throw a SerializationException return createDefault() when Gson returns a null value here, so it automatically resets and re-saves the config.


Relevant quote from the Gson javadoc:

Returns null if [Reader] json is at EOF.