Skip to content

Commit db8615f

Browse files
roginbfnolingtonygermano
committed
Fix migration failure to 4.5.2
Verify that log4j2.properties and log4j2-cli.properties files exist before attempting to update them. These files are not strictly required. Log an INFO level message and continue when not found. Also refactored to elimitate duplication of code. Issue: nextgenhealthcare/connect#6327 Co-authored-by: bfnoling <107218487+bfnoling@users.noreply.github.com> Co-authored-by: Tony Germano <tony@germano.name> Signed-off-by: Richard Ogin <rogin@users.noreply.github.com> Signed-off-by: Tony Germano <tony@germano.name>
1 parent 45c3e93 commit db8615f

1 file changed

Lines changed: 23 additions & 26 deletions

File tree

‎server/src/com/mirth/connect/server/migration/Migrate4_5_2.java‎

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
importjava.io.File;
44
importjava.io.IOException;
5+
importjava.net.URI;
56
importjava.util.Map;
67

78
importorg.apache.commons.configuration2.PropertiesConfiguration;
@@ -23,33 +24,29 @@ public void migrate() throws MigrationException {
2324
migrateLog4jProperties();
2425
}
2526

26-
privatevoidmigrateLog4jProperties() {
27-
try {
28-
// Update log4j2.properties
29-
FileBasedConfigurationBuilder<PropertiesConfiguration> builder = PropertiesConfigurationUtil.createBuilder(newFile(ClassPathResource.getResourceURI("log4j2.properties")));
30-
PropertiesConfigurationlog4jproperties = builder.getConfiguration();
31-
32-
StringconsoleCharset = (String) log4jproperties.getProperty("appender.console.layout.charset");
33-
if (StringUtils.isBlank(consoleCharset)) {
34-
log4jproperties.setProperty("appender.console.layout.charset", "UTF-8");
35-
}
36-
37-
builder.save();
38-
39-
// Update log4j2-cli.properties
40-
builder = PropertiesConfigurationUtil.createBuilder(newFile(ClassPathResource.getResourceURI("log4j2-cli.properties")));
41-
log4jproperties = builder.getConfiguration();
42-
43-
consoleCharset = (String) log4jproperties.getProperty("appender.console.layout.charset");
44-
if (StringUtils.isBlank(consoleCharset)) {
45-
log4jproperties.setProperty("appender.console.layout.charset", "UTF-8");
46-
}
27+
privatevoidmigrateLog4jProperties() {
28+
updateAppender("log4j2.properties");
29+
updateAppender("log4j2-cli.properties");
30+
}
4731

48-
builder.save();
49-
} catch (ConfigurationException | IOExceptione) {
50-
logger.error("Failed to migrate log4j properties.", e);
51-
}
52-
}
32+
privatevoidupdateAppender(StringfileName) {
33+
try {
34+
URIuri = ClassPathResource.getResourceURI(fileName);
35+
if (uri == null) {
36+
logger.info("Migration could not find {}.", fileName);
37+
return;
38+
}
39+
FileBasedConfigurationBuilder<PropertiesConfiguration> builder = PropertiesConfigurationUtil.createBuilder(newFile(uri));
40+
PropertiesConfigurationproperties = builder.getConfiguration();
41+
StringconsoleCharset = (String) properties.getProperty("appender.console.layout.charset");
42+
if (StringUtils.isBlank(consoleCharset)) {
43+
properties.setProperty("appender.console.layout.charset", "UTF-8");
44+
builder.save();
45+
}
46+
} catch (ConfigurationException | IOExceptione) {
47+
logger.error(String.format("Failed to migrate %s.", fileName), e);
48+
}
49+
}
5350

5451
@Override
5552
publicMap<String, Object> getConfigurationPropertiesToAdd() {

0 commit comments

Comments
 (0)