[ 
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)

Reply via email to