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

File tree

1 file changed

+23
-26
lines changed

1 file changed

+23
-26
lines changed

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
import java.io.File;
44
import java.io.IOException;
5+
import java.net.URI;
56
import java.util.Map;
67

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

26-
private void migrateLog4jProperties() {
27-
try {
28-
// Update log4j2.properties
29-
FileBasedConfigurationBuilder<PropertiesConfiguration> builder = PropertiesConfigurationUtil.createBuilder(new File(ClassPathResource.getResourceURI("log4j2.properties")));
30-
PropertiesConfiguration log4jproperties = builder.getConfiguration();
31-
32-
String consoleCharset = (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(new File(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+
private void migrateLog4jProperties() {
28+
updateAppender("log4j2.properties");
29+
updateAppender("log4j2-cli.properties");
30+
}
4731

48-
builder.save();
49-
} catch (ConfigurationException | IOException e) {
50-
logger.error("Failed to migrate log4j properties.", e);
51-
}
52-
}
32+
private void updateAppender(String fileName) {
33+
try {
34+
URI uri = ClassPathResource.getResourceURI(fileName);
35+
if (uri == null) {
36+
logger.info("Migration could not find {}.", fileName);
37+
return;
38+
}
39+
FileBasedConfigurationBuilder<PropertiesConfiguration> builder = PropertiesConfigurationUtil.createBuilder(new File(uri));
40+
PropertiesConfiguration properties = builder.getConfiguration();
41+
String consoleCharset = (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 | IOException e) {
47+
logger.error(String.format("Failed to migrate %s.", fileName), e);
48+
}
49+
}
5350

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

0 commit comments

Comments
 (0)