Neil Bartlett created FELIX-5213:
------------------------------------

             Summary: ComponentContext.getServiceReference returns null though 
service registered
                 Key: FELIX-5213
                 URL: https://issues.apache.org/jira/browse/FELIX-5213
             Project: Felix
          Issue Type: Bug
          Components: Declarative Services (SCR)
    Affects Versions: scr-2.0.2
            Reporter: Neil Bartlett


In a component that provides a service and is not immediate, the service is 
registered before activation. Therefore the service reference of the registered 
service should be available to the component, from 
ComponentContext.getServiceReference(), during activation. However the 
following code sample throws NPE:

{code}
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.service.component.ComponentContext;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;

@Component(service = Object.class, property = "name=scrbug")
public class Example {
        @Activate
        void activate(ComponentContext context) {
                ServiceReference<?> reference = context.getServiceReference();
                System.out.printf("My service ID is %d%n", 
reference.getProperty(Constants.SERVICE_ID));
        }
}
{code}

Note that the service certainly exists, because I have injected it into a 
second component, in order to force activation of the above.



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

Reply via email to