You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2019/08/21 01:51:53 UTC

svn commit: r1865587 - /felix/trunk/log/src/main/java/org/apache/felix/log/ConfigurationListenerImpl.java

Author: cziegeler
Date: Wed Aug 21 01:51:53 2019
New Revision: 1865587

URL: http://svn.apache.org/viewvc?rev=1865587&view=rev
Log:
FELIX-6144 : Root logger context configuration is overwritten when ANY configuration changes. Apply patch from Jelle Nelis

Modified:
    felix/trunk/log/src/main/java/org/apache/felix/log/ConfigurationListenerImpl.java

Modified: felix/trunk/log/src/main/java/org/apache/felix/log/ConfigurationListenerImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/log/src/main/java/org/apache/felix/log/ConfigurationListenerImpl.java?rev=1865587&r1=1865586&r2=1865587&view=diff
==============================================================================
--- felix/trunk/log/src/main/java/org/apache/felix/log/ConfigurationListenerImpl.java (original)
+++ felix/trunk/log/src/main/java/org/apache/felix/log/ConfigurationListenerImpl.java Wed Aug 21 01:51:53 2019
@@ -42,6 +42,8 @@ public class ConfigurationListenerImpl {
     private static final String CONFIGURATION_ADMIN_CLASS = "org.osgi.service.cm.ConfigurationAdmin";
     private static final String CONFIGURATION_EVENT_CLASS = "org.osgi.service.cm.ConfigurationEvent";
     private static final String CONFIGURATION_LISTENER_CLASS = "org.osgi.service.cm.ConfigurationListener";
+    private static final String LOGGER_ADMIN_PID = "org.osgi.service.log.admin";
+    private static final String LOGGER_ADMIN_PID_PREFIX = LOGGER_ADMIN_PID + '|';
 
     /** ConfigurationAdmin tracker */
     final ServiceTracker<?, ?> m_cmtracker;
@@ -128,10 +130,13 @@ public class ConfigurationListenerImpl {
                     public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                         if (method.equals(m_clConfigurationEvent)) {
                             String pid = (String)m_ceGetPid.invoke(args[0]);
+                            if(!pid.startsWith(LOGGER_ADMIN_PID)) {
+                            	return null;
+                            }
                             String configName = null;
                             String location = "?";
-                            if (pid.startsWith("org.osgi.service.log.admin|")) {
-                                configName = pid.substring("org.osgi.service.log.admin|".length());
+                            if (pid.startsWith(LOGGER_ADMIN_PID_PREFIX)) {
+                                configName = pid.substring(LOGGER_ADMIN_PID_PREFIX.length());
                                 if (configName.contains("|") && (configName.split("|").length == 3)) {
                                     String[] parts = configName.split("|");
                                     location = parts[2];