Carsten Ziegeler created FELIX-6442:
---------------------------------------

             Summary: NPE when iterating over DTOs
                 Key: FELIX-6442
                 URL: https://issues.apache.org/jira/browse/FELIX-6442
             Project: Felix
          Issue Type: Bug
          Components: Declarative Services (SCR)
    Affects Versions: scr-2.1.26
            Reporter: Carsten Ziegeler
             Fix For: scr-2.1.30


Sometimes when iterating over SCR DTOs, a NPE occurs - I suspect this is a race 
condition with the framework unregistering a service:
{noformat}
        
[pool-85-thread-1] java.lang.NullPointerException: null at 
org.apache.felix.framework.DTOFactory.createServiceReferenceDTO(DTOFactory.java:349)
 at 
org.apache.felix.framework.DTOFactory.createServiceReferenceDTOArray(DTOFactory.java:341)
 at org.apache.felix.framework.DTOFactory.createDTO(DTOFactory.java:106) at 
org.apache.felix.framework.BundleImpl.adapt(BundleImpl.java:1160) at 
org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.serviceReferenceToDTO(ServiceComponentRuntimeImpl.java:303)
 [org.apache.felix.scr:2.1.26] at 
org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.satisfiedRefManagersToDTO(ServiceComponentRuntimeImpl.java:250)
 [org.apache.felix.scr:2.1.26] at 
org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.managerToConfiguration(ServiceComponentRuntimeImpl.java:215)
 [org.apache.felix.scr:2.1.26] at 
org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.getComponentConfigurationDTOs(ServiceComponentRuntimeImpl.java:141)
 [org.apache.felix.scr:2.1.26] at 
org.apache.felix.rootcause.DSRootCause.getRootCause(DSRootCause.java:60) 
[org.apache.felix.rootcause:0.1.0] at 
org.apache.felix.rootcause.DSRootCause.getRootCause(DSRootCause.java:51) 
[org.apache.felix.rootcause:0.1.0] at 
java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at 
java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) at 
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown 
Source) at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) 
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) 
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown 
Source) at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) 
at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) at 
org.apache.felix.systemready.impl.ComponentsCheck.getStatus(ComponentsCheck.java:97)
 at 
org.apache.felix.systemready.impl.SystemReadyMonitorImpl.getStatus(SystemReadyMonitorImpl.java:150)
 at 
org.apache.felix.systemready.impl.SystemReadyMonitorImpl.lambda$evaluateAllChecks$2(SystemReadyMonitorImpl.java:133)
 at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at 
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown 
Source) at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) 
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) 
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown 
Source) at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) 
at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) at 
org.apache.felix.systemready.impl.SystemReadyMonitorImpl.evaluateAllChecks(SystemReadyMonitorImpl.java:135)
 at 
org.apache.felix.systemready.impl.SystemReadyMonitorImpl.check(SystemReadyMonitorImpl.java:119)
 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown 
Source) at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown 
Source) at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
 Source) at
{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to