mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-19 06:42:02 +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) {
|
if (input != null) {
|
||||||
convertMapsToSections(input, this);
|
convertMapsToSections(input, this);
|
||||||
|
} else {
|
||||||
|
this.map.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void convertMapsToSections(@NotNull Map<?, ?> input, @NotNull ConfigurationSection section) {
|
protected void convertMapsToSections(@NotNull Map<?, ?> input, @NotNull ConfigurationSection section) {
|
||||||
|
this.map.clear();
|
||||||
for (Map.Entry<?, ?> entry : input.entrySet()) {
|
for (Map.Entry<?, ?> entry : input.entrySet()) {
|
||||||
String key = entry.getKey().toString();
|
String key = entry.getKey().toString();
|
||||||
Object value = entry.getValue();
|
Object value = entry.getValue();
|
||||||
|
@ -206,4 +206,44 @@ public abstract class FileConfigurationTest extends MemoryConfigurationTest {
|
|||||||
|
|
||||||
assertEquals("", config.saveToString());
|
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