mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-31 21:37:39 +01:00
SPIGOT-6274: Reloading configuration does not clear previous values
By: md_5 <git@md-5.net>
This commit is contained in:
parent
f338bff9e3
commit
885c2247d1
@ -68,10 +68,13 @@ public class YamlConfiguration extends FileConfiguration {
|
||||
|
||||
if (input != null) {
|
||||
convertMapsToSections(input, this);
|
||||
} else {
|
||||
this.map.clear();
|
||||
}
|
||||
}
|
||||
|
||||
protected void convertMapsToSections(@NotNull Map<?, ?> input, @NotNull ConfigurationSection section) {
|
||||
this.map.clear();
|
||||
for (Map.Entry<?, ?> entry : input.entrySet()) {
|
||||
String key = entry.getKey().toString();
|
||||
Object value = entry.getValue();
|
||||
|
@ -206,4 +206,44 @@ public abstract class FileConfigurationTest extends MemoryConfigurationTest {
|
||||
|
||||
assertEquals("", config.saveToString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReloadClear() throws Exception {
|
||||
// Test for SPIGOT-6274 - load does not clear values
|
||||
FileConfiguration config = getConfig();
|
||||
|
||||
assertFalse(config.contains("test"));
|
||||
assertFalse(config.getBoolean("test"));
|
||||
|
||||
config.set("test", true);
|
||||
assertTrue(config.contains("test"));
|
||||
assertTrue(config.getBoolean("test"));
|
||||
|
||||
config.loadFromString("");
|
||||
assertFalse(config.contains("test"));
|
||||
assertFalse(config.getBoolean("test"));
|
||||
|
||||
assertFalse(config.contains("test"));
|
||||
assertFalse(config.getBoolean("test"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReloadClear2() throws Exception {
|
||||
// Test for SPIGOT-6274 - load does not clear values
|
||||
FileConfiguration config = getConfig();
|
||||
|
||||
assertFalse(config.contains("test"));
|
||||
assertFalse(config.getBoolean("test"));
|
||||
|
||||
config.set("test", true);
|
||||
assertTrue(config.contains("test"));
|
||||
assertTrue(config.getBoolean("test"));
|
||||
|
||||
config.loadFromString("other: false"); // Test both null and non-null code paths
|
||||
assertFalse(config.contains("test"));
|
||||
assertFalse(config.getBoolean("test"));
|
||||
|
||||
assertFalse(config.contains("test"));
|
||||
assertFalse(config.getBoolean("test"));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user