From db8615f6620cd07b1741509e85b4f4eabf780e4f Mon Sep 17 00:00:00 2001 From: Richard Ogin Date: Wed, 2 Jul 2025 14:44:25 -0500 Subject: [PATCH] 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: https://github.com/nextgenhealthcare/connect/pull/6327 Co-authored-by: bfnoling <107218487+bfnoling@users.noreply.github.com> Co-authored-by: Tony Germano Signed-off-by: Richard Ogin Signed-off-by: Tony Germano --- .../server/migration/Migrate4_5_2.java | 49 +++++++++---------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/server/src/com/mirth/connect/server/migration/Migrate4_5_2.java b/server/src/com/mirth/connect/server/migration/Migrate4_5_2.java index fefeaeea31..a3a95aebfe 100644 --- a/server/src/com/mirth/connect/server/migration/Migrate4_5_2.java +++ b/server/src/com/mirth/connect/server/migration/Migrate4_5_2.java @@ -2,6 +2,7 @@ import java.io.File; import java.io.IOException; +import java.net.URI; import java.util.Map; import org.apache.commons.configuration2.PropertiesConfiguration; @@ -23,33 +24,29 @@ public void migrate() throws MigrationException { migrateLog4jProperties(); } - private void migrateLog4jProperties() { - try { - // Update log4j2.properties - FileBasedConfigurationBuilder builder = PropertiesConfigurationUtil.createBuilder(new File(ClassPathResource.getResourceURI("log4j2.properties"))); - PropertiesConfiguration log4jproperties = builder.getConfiguration(); - - String consoleCharset = (String) log4jproperties.getProperty("appender.console.layout.charset"); - if (StringUtils.isBlank(consoleCharset)) { - log4jproperties.setProperty("appender.console.layout.charset", "UTF-8"); - } - - builder.save(); - - // Update log4j2-cli.properties - builder = PropertiesConfigurationUtil.createBuilder(new File(ClassPathResource.getResourceURI("log4j2-cli.properties"))); - log4jproperties = builder.getConfiguration(); - - consoleCharset = (String) log4jproperties.getProperty("appender.console.layout.charset"); - if (StringUtils.isBlank(consoleCharset)) { - log4jproperties.setProperty("appender.console.layout.charset", "UTF-8"); - } + private void migrateLog4jProperties() { + updateAppender("log4j2.properties"); + updateAppender("log4j2-cli.properties"); + } - builder.save(); - } catch (ConfigurationException | IOException e) { - logger.error("Failed to migrate log4j properties.", e); - } - } + private void updateAppender(String fileName) { + try { + URI uri = ClassPathResource.getResourceURI(fileName); + if (uri == null) { + logger.info("Migration could not find {}.", fileName); + return; + } + FileBasedConfigurationBuilder builder = PropertiesConfigurationUtil.createBuilder(new File(uri)); + PropertiesConfiguration properties = builder.getConfiguration(); + String consoleCharset = (String) properties.getProperty("appender.console.layout.charset"); + if (StringUtils.isBlank(consoleCharset)) { + properties.setProperty("appender.console.layout.charset", "UTF-8"); + builder.save(); + } + } catch (ConfigurationException | IOException e) { + logger.error(String.format("Failed to migrate %s.", fileName), e); + } + } @Override public Map getConfigurationPropertiesToAdd() {