I am creating a Bukkit plugin, but I have problems loading a .properties file. I am getting "sun.util.ResourceBundleEnumeration cannot be cast to java.lang.String"
I am trying to add all keys that arent in 2 .properties files (ENf and LANGf) from another properties file.
File tempFile = null;
try {
tempFile = File.createTempFile("temp_EN", ".properties");
} catch (IOException e) {
e.printStackTrace();
}
try (FileOutputStream out = new FileOutputStream(tempFile)) {
tempFile.deleteOnExit();
copy(r.getUC().getResource("Messages/EN.properties"), out);
} catch (IOException e) {
e.printStackTrace();
}
ResourceBundle tempR = null;
try {
tempR = new PropertyResourceBundle(new FileInputStream(tempFile));
} catch (IOException e) {
e.printStackTrace();
}
Enumeration<String> keys = tempR.getKeys();
//EN
Properties propsEN = new Properties();
Properties propsCU = new Properties();
try {
propsEN.load(new FileInputStream(ENf));
propsCU.load(new FileInputStream(LANGf));
} catch (IOException e) {
e.printStackTrace();
}
while(keys.hasMoreElements()){
String key = keys.nextElement();
//
if(!r.en.containsKey(key)){
propsEN.put(keys, tempR.getString(key));
}
if(!r.cu.containsKey(key)){
propsCU.put(keys, tempR.getString(key));
}
}
try {
FileOutputStream ENo = StreamUtil.createOutputStream(ENf);
FileOutputStream CUo = StreamUtil.createOutputStream(LANGf);
propsEN.store(ENo, "");
propsCU.store(CUo, "");
ENo.close();
CUo.close();
} catch (SecurityException | IOException e) {
e.printStackTrace();
}
tempFile.delete();
LANGf = Some .properties file
ENf = Some .properties file
r.getUC().getResource() returns a InputStream of a certain .properties file, where I am trying to copy all missing keys from.
copy(File, File) just copies a file.
java.lang.ClassCastException: sun.util.ResourceBundleEnumeration cannot be cast to java.lang.String at java.util.Properties.store0(Unknown Source) ~[?:1.7.0_21] at java.util.Properties.store(Unknown Source) ~[?:1.7.0_21] at Bammerbom.UltimateCore.UltimateFileLoader.addConfig(UltimateFileLoader.java:209) ~[?:?] at Bammerbom.UltimateCore.UltimateCore.onEnable(UltimateCore.java:22) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) ~[Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:324) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.java:455) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.java:389) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:839) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.Bukkit.reload(Bukkit.java:303) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:740) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:726) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:294) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:259) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:558) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:469) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks] at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [Server.jar:git-Bukkit-1.7.9-R0.2-20-g0b2ed13-b3108jnks]
Instead of storing a value for each key in your properties, you store a value for the key enumeration.
propsEN.put(keys, tempR.getString(key));
should be
propsEN.put(key, tempR.getString(key));
^-- no 's' here.
Same for propsCU
, obviously.