Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
framework-7.0.1
-
None
Description
Sometimes when iterating over SCR DTOs, a NPE occurs - I suspect this is a race condition with the framework unregistering a service
[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