felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anthony Bargnesi <abargn...@gmail.com>
Subject Re: (iPOJO) NPE when injecting BundleContext and @Requires in constructor
Date Wed, 17 Oct 2012 23:49:18 GMT
Göktürk,

I was watching the issue but I couldn't get to testing until now.  Your fix
seemed to
address my issues so I will update the jira issue.

Thanks!
Anthony Bargnesi

On Wed, Oct 17, 2012 at 2:09 PM, Göktürk Gezer <gokturk.gezer@gmail.com>wrote:

> Hi Anthony,
>
> In case you're not watching the JIRA, It's fixed and I'm waiting for your
> confirmation...
>
>
> *Regards,*
> *Göktürk*
>
> On Wed, Oct 17, 2012 at 3:24 PM, Anthony Bargnesi <abargnesi@gmail.com
> >wrote:
>
> > Thanks Clement.  I couldn't re-open the issue with my account.  At least
> I
> > couldn't find where
> > to re-open the issue.  I did comment
> > https://issues.apache.org/jira/browse/FELIX-3576 with what
> > I am seeing.
> >
> > Thanks!
> > Anthony Bargnesi
> >
> > On Wed, Oct 17, 2012 at 3:08 AM, Clement Escoffier <
> > clement.escoffier@gmail.com> wrote:
> >
> > > 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 <abargnesi@gmail.com>
> 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: users-unsubscribe@felix.apache.org
> > > For additional commands, e-mail: users-help@felix.apache.org
> > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message