[ 
https://issues.apache.org/jira/browse/FELIX-4883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14554543#comment-14554543
 ] 

Rob Ryan edited comment on FELIX-4883 at 5/21/15 3:45 PM:
----------------------------------------------------------

The particular point where this exception was seen was:

        private ServiceReferenceDTO serviceReferenceToDTO( ServiceReference<?> 
serviceRef)
        {
                ServiceReferenceDTO dto = new ServiceReferenceDTO();
                Bundle bundle = serviceRef.getBundle(); // <-- NPE was here.
                

This is the kind of context where checking null may be appropriate 
defensiveness IMO...

But in the end the bug originates with bad calling of the service registration 
APIs where a call to update service registration properties while the service 
was unregistered resulted in bad state in the SCR. I can try to reduce the 
proprietary code to an example which can be publicly disclosed.


was (Author: rr...@adobe.com):
The particular point where this exception was seen was:

        private ServiceReferenceDTO serviceReferenceToDTO( ServiceReference<?> 
serviceRef)
        {
                ServiceReferenceDTO dto = new ServiceReferenceDTO();
                Bundle bundle = serviceRef.getBundle();
                

This is the kind of context where checking null may be appropriate 
defensiveness IMO...

But in the end the bug originates with bad calling of the service registration 
APIs where a call to update service registration properties while the service 
was unregistered resulted in bad state in the SCR. I can try to reduce the 
proprietary code to an example which can be publicly disclosed.

> ServiceComponentRuntime.getComponentConfigurationDTOs NullPointerException
> --------------------------------------------------------------------------
>
>                 Key: FELIX-4883
>                 URL: https://issues.apache.org/jira/browse/FELIX-4883
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>         Environment: Linux, Sling, Adobe CQ, org.apache.felix.scr version 
> 1.8.3-R1658944
>            Reporter: Rob Ryan
>            Assignee: David Bosschaert
>            Priority: Minor
>             Fix For: scr-2.0.0
>
>         Attachments: scrtest.zip
>
>
> In our test automation we install a large set of bundles after our also large 
> 'main' app starts up. This causes significant churn as bundles and components 
> are stopped and potentially new versions are started. Unfortunately the coded 
> involved is not open source, so I cannot deliver the full data required to 
> reproduce  the failure described here.
> What I can share is that after all this churn of bundles and components being 
> stopped and started the ScrComponentRuntime service starts to fail with a 
> NullPointerException in getComponentConfigurationDTOs. This was initially 
> noticed as an NPE being reported when visiting the felix console at 
> /system/console/components.
> The stack at the point of failure is:
> java.lang.NullPointerException
>       at 
> org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.serviceReferenceToDTO(ServiceComponentRuntimeImpl.java:205)
>       at 
> org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.satisfiedRefManagersToDTO(ServiceComponentRuntimeImpl.java:169)
>       at 
> org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.managerToConfiguration(ServiceComponentRuntimeImpl.java:145)
>       at 
> org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.getComponentConfigurationDTOs(ServiceComponentRuntimeImpl.java:119)
>       at com.robr.incqtest.test.ScrTest.test(ScrTest.java:37)
>       ...
> The NPE occurs because a 
> org.apache.felix.framework.ServiceRegistrationImpl.ServiceReferenceImpl being 
> processed in 
> org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl.serviceReferenceToDTO(org.osgi.framework.ServiceReference<?>)
>  line: 205     
> has a m_svcObj of null. So even though the bundle is actually available in 
> the object the getBundle() method returns null.
> [~cziegeler] [~bosschaert] I can investigate further to ideally narrow this 
> down further, but any pointers would be much appreciated.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to