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)

Reply via email to