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