Skip to content

Commit 2950fcd

Browse files
Fixed inconsistent cache keys in config service
1 parent fa91788 commit 2950fcd

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

zetacore/src/main/java/com/zetaplugins/zetacore/services/config/ConfigService.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,18 @@ public <T> T getConfig(Class<T> configClass, boolean useCache) {
9191
}
9292

9393
private FileConfiguration getFileConfigFromFileName(String fileName, boolean useCache) {
94-
if (useCache && configCache.containsKey(fileName)) return configCache.get(fileName);
94+
String normalizedFileName = normalizeFileName(fileName);
9595

96-
String fileNameWithExtension = fileName.endsWith(".yml") ? fileName : fileName + ".yml";
97-
File configFile = new File(plugin.getDataFolder(), fileNameWithExtension);
96+
if (useCache && configCache.containsKey(normalizedFileName)) return configCache.get(normalizedFileName);
97+
98+
File configFile = new File(plugin.getDataFolder(), normalizedFileName);
9899
if (!configFile.exists()) {
99100
configFile.getParentFile().mkdirs();
100-
plugin.saveResource(fileNameWithExtension, false);
101+
plugin.saveResource(normalizedFileName, false);
101102
}
102103

103104
FileConfiguration fileConfig = YamlConfiguration.loadConfiguration(configFile);
104-
if (useCache) configCache.put(fileName, fileConfig);
105+
if (useCache) configCache.put(normalizedFileName, fileConfig);
105106
return fileConfig;
106107
}
107108

@@ -124,17 +125,26 @@ public void saveConfig(String fileName, FileConfiguration fileConfig) {
124125
}
125126

126127
private void saveFileConfigToFileName(String fileName, FileConfiguration fileConfig) {
127-
String fileNameWithExtension = fileName.endsWith(".yml") ? fileName : fileName + ".yml";
128-
File configFile = new File(plugin.getDataFolder(), fileNameWithExtension);
128+
String normalizedFileName = normalizeFileName(fileName);
129+
File configFile = new File(plugin.getDataFolder(), normalizedFileName);
129130
try {
130131
fileConfig.save(configFile);
131132
} catch (Exception e) {
132-
plugin.getLogger().log(Level.SEVERE, "Failed to save configuration file: " + fileName + ".yml", e);
133+
plugin.getLogger().log(Level.SEVERE, "Failed to save configuration file: " + normalizedFileName, e);
133134
} finally {
134-
configCache.remove(fileName);
135+
configCache.remove(normalizedFileName);
135136
}
136137
}
137138

139+
/**
140+
* Normalize the file name to ensure it has the correct .yml extension.
141+
* @param fileName The original file name.
142+
* @return The normalized file name with .yml extension.
143+
*/
144+
private String normalizeFileName(String fileName) {
145+
return fileName.endsWith(".yml") ? fileName : fileName + ".yml";
146+
}
147+
138148
/**
139149
* Clear the configuration cache.
140150
*/

0 commit comments

Comments
 (0)