Hi,

It looks definitely related to FELIX-3576. Could you re-open the issue. I will 
have a look.

Regards,

Clement

On 16 oct. 2012, at 22:46, Anthony Bargnesi <[email protected]> wrote:

> Hi folks,
> 
> I have an iPOJO service component that takes two constructor parameters:
>  - BundleContext
>  - another service with @Requires
> 
> My scenario is similar to the following contrived example:
> 
> @Component
> @Provides
> @Instantiate
> public class DefaultUserService implements UserService {
>     ...
> }
> 
> @Component
> @Provides
> @Instantiate
> public class DefaultPersonService extends ObjectService implements
> PersonService {
> 
>     private final BundleContext ctx;
> 
>     public DefaultPersonService(BundleContext ctx,
>         @Requires(nullable = false, proxy = false)
> UserService userService) {
> 
>         super(userService);
>         this.ctx = ctx;
>     }
> }
> 
> In my example I require ObjectService to be instantiated with the
> UserService so it must
> be a constructor parameter.
> 
> I found that if I also want BundleContext to be injected then I receive the
> following
> NullPointerException:
> 
> [2012-10-16 16:11:11.886] ERROR iLogServiceListener@65284069
> org.osgi.service.log.LogService
> Bundle person.impl_0.1.0, [ERROR] person.impl.DefaultPersonService : null
> java.lang.NullPointerException: null
>         at
> org.apache.felix.ipojo.InstanceManager.handleBCInjections(InstanceManager.java:
> 253)
>         at
> org.apache.felix.ipojo.InstanceManager.configure(InstanceManager.java:207)
>         at
> org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:
> 178)
>         at
> org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:
> 310)
>         at
> org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:
> 239)
>         at
> org.apache.felix.ipojo.InstanceCreator$ManagedInstance.create(InstanceCreator.java:
> 355)
>         at
> org.apache.felix.ipojo.InstanceCreator.addInstance(InstanceCreator.java:89)
>         at org.apache.felix.ipojo.Extender.parse(Extender.java:306)
>         at
> org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:237)
>         at org.apache.felix.ipojo.Extender.access$600(Extender.java:52)
>         at org.apache.felix.ipojo.Extender$CreatorThread.run(Extender.java:
> 769)
>         at java.lang.Thread.run(Thread.java:722)
> 
> If I remove the BundleContext constructor parameter then the UserService is
> injected and the DefaultPersonService
> is valid.
> 
> I have tested this against the latest trunk code at:
> https://svn.apache.org/repos/asf/felix/trunk/ipojo/
> 
> I thought it could be related to the following fix:
> https://issues.apache.org/jira/browse/FELIX-3576
> 
> Could this be a bug?
> 
> Thanks!
> Anthony Bargnesi


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to