CubeEngine / ReflecT

Typesafe serialization of data for Java
http://cubeisland.de
MIT License
13 stars 2 forks source link

Fields can't be null in Sections #9

Closed tlaundal closed 10 years ago

tlaundal commented 10 years ago

I discovered this problem with a custom converter, but it turns out it's global problem.

In the stack trace below the field 'test' is: 'public String test = null' It's never used in the plugin.

NB: I haven't tested this without sections.

15:42:58 [SEVERE] Error occurred while disabling RegionSpawn v1.0-SNAPSHOT (Is it up to date?)
de.cubeisland.engine.configuration.InvalidConfigurationException: Error while saving Configuration!
    at de.cubeisland.engine.configuration.codec.MultiConfigurationCodec.saveChildConfig(MultiConfigurationCodec.java:74)
    at de.cubeisland.engine.configuration.MultiConfiguration.saveChild(MultiConfiguration.java:63)
    at de.cubeisland.engine.configuration.MultiConfiguration.save(MultiConfiguration.java:162)
    at de.cubeisland.engine.configuration.Configuration.save(Configuration.java:227)
    at de.cubeisland.devs.regionspawn.RegionSpawn.onDisable(RegionSpawn.java:109)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:219)
    at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:481)
    at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:400)
    at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:393)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.disablePlugins(CraftServer.java:277)
    at net.minecraft.server.v1_6_R2.MinecraftServer.stop(MinecraftServer.java:343)
    at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:450)
    at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Caused by: de.cubeisland.engine.configuration.InvalidConfigurationException: Error while converting Section into a MapNode!
Path: test
Section: class de.cubeisland.devs.regionspawn.config.InternalsConfig
Field: test
    at de.cubeisland.engine.configuration.InvalidConfigurationException.of(InvalidConfigurationException.java:53)
    at de.cubeisland.engine.configuration.codec.ConfigurationCodec.convertSection(ConfigurationCodec.java:387)
    at de.cubeisland.engine.configuration.codec.MultiConfigurationCodec.convertSection(MultiConfigurationCodec.java:262)
    at de.cubeisland.engine.configuration.codec.MultiConfigurationCodec.saveChildConfig(MultiConfigurationCodec.java:70)
    ... 12 more
Caused by: java.lang.NullPointerException
    at de.cubeisland.engine.configuration.node.MapNode.setExactNode(MapNode.java:103)
    at de.cubeisland.engine.configuration.node.ParentNode.setNodeAt(ParentNode.java:44)
    at de.cubeisland.engine.configuration.codec.ConfigurationCodec.convertSection(ConfigurationCodec.java:383)
    ... 14 more
tlaundal commented 10 years ago

Turns out this is fixed in version 0.1.0