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)