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

Anthony Bargnesi edited comment on FELIX-3576 at 10/17/12 12:23 PM:
--------------------------------------------------------------------

A similar issue is still occurring.  If I define a component with a constructor 
that takes another required component and a BundleContext then I receive the 
following stacktrace:

  [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:

An example component definition that reveals this issue is:

@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;
        }
    }
                
      was (Author: abargnesi):
    A similar issue is still occurring.  If I define a component with a 
constructor that takes another required component and a BundleContext then I 
receive the following stacktrace:
{code:title=Bar.java|borderStyle=solid}
  [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:
{code}

An example component definition that reveals this issue is:

{code:title=Bar.java|borderStyle=solid}
@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;
        }
    }
{code}
                  
> iPOJO fails when using constructor injection and expecting BundleContext in 
> ctor
> --------------------------------------------------------------------------------
>
>                 Key: FELIX-3576
>                 URL: https://issues.apache.org/jira/browse/FELIX-3576
>             Project: Felix
>          Issue Type: Bug
>          Components: iPOJO
>    Affects Versions: ipojo-core-1.8.2
>            Reporter: Daan de Wit
>            Assignee: Göktürk Gezer
>             Fix For: ipojo-core-1.8.4
>
>
> When using constructor inject, and also expecting BundleContext to be passed 
> into the constructor, iPOJO gives and error: The constructor parameter 0 is 
> not managed
> The constructor is defined as something like this:
> public Constructor(BundleContext context, @Requires(id="my-id") Dependency1 
> dep) { /* ... */ }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to