Ronald Rivas created LOG4J2-1912:
------------------------------------
Summary: CompositeConfiguration: Unable to determine URI for
configuration. However, the reconfiguration is completed.
Key: LOG4J2-1912
URL: https://issues.apache.org/jira/browse/LOG4J2-1912
Project: Log4j 2
Issue Type: Bug
Components: API
Affects Versions: 2.8.2, 2.8.1
Reporter: Ronald Rivas
Priority: Trivial
Fix For: 2.8.2
Hello everybody,
I found a possible bug in class CompositeConfiguration: Unable to determine URI
for configuration. However, the reconfiguration is completed.
The solution:
In line 154, Class CompositeConfiguration [log4j-core-2.8.1.jar] change the
condition:
"if (sourceURI != null)" --> "if (sourceURI == null)"
So it makes sense, because after that it will be tried to reload the
configuration again, and if it does not work, I get a warn, otherwise is ok.
The changed code could be seem like this:
@Override
public Configuration reconfigure() {
LOGGER.debug("Reconfiguring composite configuration");
final List<AbstractConfiguration> configs = new ArrayList<>();
final ConfigurationFactory factory = ConfigurationFactory.getInstance();
for (final AbstractConfiguration config : configurations) {
final ConfigurationSource source = config.getConfigurationSource();
final URI sourceURI = source.getURI();
if (sourceURI == null) {
LOGGER.warn("Unable to determine URI for configuration {},
changes to it will be ignored", config.getName());
Configuration currentConfig =
factory.getConfiguration(getLoggerContext(), config.getName(), sourceURI);
if (currentConfig == null) {
LOGGER.warn("Unable to reload configuration {}, changes to
it will be ignored", config.getName());
}
else {
LOGGER.warn("Able to reload configuration {}, changes to it
will be completed", config.getName());
configs.add((AbstractConfiguration) currentConfig);
}
} else {
configs.add(config);
}
}
return new CompositeConfiguration(configs);
}
Questions or tips are welcome.
Best regards,
rri
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)