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)