summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNathan Adams <dinnerbone@dinnerbone.com>2012-01-08 23:29:33 +0000
committerNathan Adams <dinnerbone@dinnerbone.com>2012-01-08 23:32:36 +0000
commit7f37ce3dc1736b9113de566a55d9b41ba6d9a120 (patch)
tree14f6189021fee36ce95b3e9fd7702b05723b8991 /src
parent30bb875342cc6ac86b2696a40fd86cf0ba9bb7b9 (diff)
downloadbukkit-7f37ce3dc1736b9113de566a55d9b41ba6d9a120.tar
bukkit-7f37ce3dc1736b9113de566a55d9b41ba6d9a120.tar.gz
bukkit-7f37ce3dc1736b9113de566a55d9b41ba6d9a120.tar.lz
bukkit-7f37ce3dc1736b9113de566a55d9b41ba6d9a120.tar.xz
bukkit-7f37ce3dc1736b9113de566a55d9b41ba6d9a120.zip
Fixed YamlConfiguration creating empty lines when reading a file with no contents, and made it trim the initial newlines of any existing config header
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/configuration/file/YamlConfiguration.java7
-rw-r--r--src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java29
2 files changed, 30 insertions, 6 deletions
diff --git a/src/main/java/org/bukkit/configuration/file/YamlConfiguration.java b/src/main/java/org/bukkit/configuration/file/YamlConfiguration.java
index 237018e3..a15f69b7 100644
--- a/src/main/java/org/bukkit/configuration/file/YamlConfiguration.java
+++ b/src/main/java/org/bukkit/configuration/file/YamlConfiguration.java
@@ -148,6 +148,7 @@ public class YamlConfiguration extends FileConfiguration {
String[] lines = input.split("\r?\n", -1);
StringBuilder result = new StringBuilder();
boolean readingHeader = true;
+ boolean foundHeader = false;
for (int i = 0; (i < lines.length) && (readingHeader); i++) {
String line = lines[i];
@@ -160,9 +161,11 @@ public class YamlConfiguration extends FileConfiguration {
if (line.length() > COMMENT_PREFIX.length()) {
result.append(line.substring(COMMENT_PREFIX.length()));
}
- } else if (line.length() == 0) {
+
+ foundHeader = true;
+ } else if ((foundHeader) && (line.length() == 0)) {
result.append("\n");
- } else {
+ } else if (foundHeader) {
readingHeader = false;
}
}
diff --git a/src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java b/src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java
index 2b976725..627ca24e 100644
--- a/src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java
+++ b/src/test/java/org/bukkit/configuration/file/FileConfigurationTest.java
@@ -170,19 +170,40 @@ public abstract class FileConfigurationTest extends MemoryConfigurationTest {
String saved = getTestValuesString();
String header = getTestHeaderResult();
String expected = getTestHeaderInput();
-
+
defaults.loadFromString(header);
config.loadFromString(saved);
config.setDefaults(defaults);
-
+
assertNull(config.options().header());
assertEquals(expected, defaults.options().header());
-
+
for (Map.Entry<String, Object> entry : values.entrySet()) {
assertEquals(entry.getValue(), config.get(entry.getKey()));
}
-
+
assertEquals(values.keySet(), config.getKeys(true));
assertEquals(header + "\n" + saved, config.saveToString());
+
+ config = getConfig();
+ config.loadFromString(getTestHeaderResult() + saved);
+ assertEquals(getTestHeaderResult() + saved, config.saveToString());
+ }
+
+ @Test
+ public void testReloadEmptyConfig() throws Exception {
+ FileConfiguration config = getConfig();
+
+ assertEquals("", config.saveToString());
+
+ config = getConfig();
+ config.loadFromString("");
+
+ assertEquals("", config.saveToString());
+
+ config = getConfig();
+ config.loadFromString("\n\n"); // Should trim the first newlines of a header
+
+ assertEquals("", config.saveToString());
}
}