From 252fc76816b4f66cb52d2851b52b896cb4788618 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Tue, 11 Oct 2011 12:16:43 +0100 Subject: Fixed removing entries in the new Configuration (via set(x, null)) --- src/main/java/org/bukkit/configuration/MemorySection.java | 6 +++++- .../java/org/bukkit/configuration/ConfigurationSectionTest.java | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/bukkit/configuration/MemorySection.java b/src/main/java/org/bukkit/configuration/MemorySection.java index b122f4f1..bf2cfb00 100644 --- a/src/main/java/org/bukkit/configuration/MemorySection.java +++ b/src/main/java/org/bukkit/configuration/MemorySection.java @@ -186,7 +186,11 @@ public class MemorySection implements ConfigurationSection { String key = split[split.length - 1]; if (section == this) { - map.put(key, prepForStorage(value)); + if (value == null) { + map.remove(key); + } else { + map.put(key, prepForStorage(value)); + } } else { section.set(key, value); } diff --git a/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java b/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java index 144fba3a..290b7844 100644 --- a/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java +++ b/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java @@ -162,7 +162,15 @@ public abstract class ConfigurationSectionTest { ConfigurationSection section = getConfigurationSection(); section.set("exists", "hello world"); + + assertTrue(section.contains("exists")); + assertTrue(section.isSet("exists")); assertEquals("hello world", section.get("exists")); + + section.set("exists", null); + + assertFalse(section.contains("exists")); + assertFalse(section.isSet("exists")); } @Test -- cgit v1.2.3