[picocontainer-scm] [jira] Closed: (PICO-372) Can't use SetterInjection with Log4JComponentMonitor

"Paul Hammant (JIRA)" <jira-yCVjj/[email protected]> Wed, 30 Jun 2010 01:05:32 -0500 (CDT)
Newsgroups gmane.comp.java.picocontainer.cvs
Message-ID <504273.1589.1277877932628.JavaMail.haus-jira@codehaus01.managed.contegix.com>
     [ http://jira.codehaus.org/browse/PICO-372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Hammant closed PICO-372.
-----------------------------

       Resolution: Fixed
    Fix Version/s: 2.11.1
         Assignee: Paul Hammant

> Can't use SetterInjection with Log4JComponentMonitor
> ----------------------------------------------------
>
>                 Key: PICO-372
>                 URL: http://jira.codehaus.org/browse/PICO-372
>             Project: PicoContainer
>          Issue Type: Bug
>          Components: PicoContainer (Java), PicoContainer Gems
>    Affects Versions: 2.10
>         Environment: PicoContainer 2.10.2.
>            Reporter: Ronald Blaschke
>            Assignee: Paul Hammant
>             Fix For: 2.11.1
>
>         Attachments: SetterInjector_nonnull_args.diff
>
>
> Using SetterInjection with a Log4JComponentMonitor yields the following exception.
> {noformat}
> java.lang.NullPointerException
>   at org.picocontainer.monitors.ComponentMonitorHelper.parmsToString(ComponentMonitorHelper.java:43)
>   at org.picocontainer.gems.monitors.Log4JComponentMonitor.instantiated(Log4JComponentMonitor.java:158)
>   at org.picocontainer.injectors.IterativeInjector.makeInstance(IterativeInjector.java:205)
>   at org.picocontainer.injectors.IterativeInjector.access$100(IterativeInjector.java:35)
>   at org.picocontainer.injectors.IterativeInjector$2.run(IterativeInjector.java:144)
>   at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:274)
>   at org.picocontainer.injectors.IterativeInjector.getComponentInstance(IterativeInjector.java:150)
>   at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:689)
>   at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:638)
>   at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:663)
>   ...
> {noformat}
> That's because IterativeInjector passes null for the argument array, which Log4JComponentMonitor doesn't handle.
> {code}
> componentMonitor.instantiated(container,
>                               IterativeInjector.this,
>                               constructorToUse,
>                               componentInstance,
>                               null,
>                               System.currentTimeMillis() - startTime);
> {code}
> I think IterativeInjector should pass an empty array, and Log4JComponentAdapter might handle null just in case.  Attached tests cover both places.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

<hr/>
<p>
To unsubscribe from this list please visit:
</p>
<p>
    <a href="http://xircles.codehaus.org/manage_email">http://xircles.codehaus.org/manage_email</a>