[
https://issues.apache.org/jira/browse/SLING-7009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16089672#comment-16089672
]
Oliver Lietz commented on SLING-7009:
-------------------------------------
[~cziegeler], I guess _config is invalid_ when
{{PropertiesUtil#toStringArray(...)}} fails, right?
{noformat}
/**
* Array of change types - optional.
* If this property is missing, added, removed and changed events for
resources
* and added and removed events for resource providers are reported.
* If this property is invalid, the listener is ignored. The type of the
property
* must either be String, or a String array. Valid values are the constants
from
* {@link ResourceChange.ChangeType}.
*/
String CHANGES = "resource.change.types";
{noformat}
> NPE in ResourceChangeListenerInfo when resource.change.types is not String or
> String array
> ------------------------------------------------------------------------------------------
>
> Key: SLING-7009
> URL: https://issues.apache.org/jira/browse/SLING-7009
> Project: Sling
> Issue Type: Bug
> Components: ResourceResolver
> Affects Versions: Resource Resolver 1.5.26
> Reporter: Oliver Lietz
>
> When registering a {{ResourceChangeListener}} with
> {{ResourceChangeListener.CHANGES}} and e.g. {{ChangeType.ADDED}} (enum),
> ResourceChangeListenerInfo fails with NPE:
> {noformat}
> 2017-07-13T23:55:46,811 | ERROR | RMI TCP Connection(3)-127.0.0.1 | Felix
> | - - | Bundle org.apache.sling.resourceresolver
> [110] EventDispatcher: Error during dispatch. (java.lang.NullPointerException)
> java.lang.NullPointerException: null
> at
> org.apache.sling.resourceresolver.impl.observation.ResourceChangeListenerInfo.<init>(ResourceChangeListenerInfo.java:120)
> ~[?:?]
> at
> org.apache.sling.resourceresolver.impl.observation.ResourceChangeListenerWhiteboard$1.addingService(ResourceChangeListenerWhiteboard.java:82)
> ~[?:?]
> at
> org.apache.sling.resourceresolver.impl.observation.ResourceChangeListenerWhiteboard$1.addingService(ResourceChangeListenerWhiteboard.java:64)
> ~[?:?]
> at
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
> ~[?:?]
> at
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
> ~[?:?]
> at
> org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
> ~[?:?]
> at
> org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) ~[?:?]
> at
> org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
> ~[?:?]
> at
> org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
> ~[?:?]
> at
> org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
> ~[?:?]
> at
> org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
> ~[?:?]
> at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4579)
> ~[?:?]
> at org.apache.felix.framework.Felix.registerService(Felix.java:3571)
> ~[?:?]
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
> ~[?:?]
> at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:355)
> ~[?:?]
> {noformat}
> This should be more robust (try/catch including for-loop).
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)