Beim Einsatz der Apache Commons Configuration Library bin ich über einen Fehler gestoßen beim Einsatz von EnvironmentConfiguration gepaart mit CombinedConfiguration.
Der Fehler tritt auf, wenn im Key eine Klammer enthalten ist.
Bei 64bit Windows7 Systemen ist dies allerdings der Normalfall mit der Environmentvariable ProgramFiles(x86).
Der Bug ist bereits gefixt, allerdings erst in der nächsten, noch nicht veröffentlichten Version 1.7, von Apache Commons Configuration.
Um nicht extra die Library patchen zu müssen habe ich folgenden kleinen Workaround hierfür gebastelt:
private AbstractConfiguration getEnvConfig() {
// use of EnvironmentConfiguration is not possible! (Bug in apache commons)
// see https://issues.apache.org/jira/browse/CONFIGURATION-404
Pattern p = Pattern.compile("[\\(\\)]");
Map<String, String> envMap = new HashMap<String, String>();
for (Entry<String, String> entry : System.getenv().entrySet()) {
String key = entry.getKey();
if (!p.matcher(key).find())
envMap.put(key, entry.getValue());
}
return new MapConfiguration(envMap);
}
Keine Kommentare:
Kommentar veröffentlichen