[picocontainer-scm] [jira] Created: (PICO-372) Can't use SetterInjection with Log4JComponentMonitor
"Ronald Blaschke (JIRA)" <jira-yCVjj/[email protected]> Tue, 29 Jun 2010 12:25:32 -0500 (CDT)
| Newsgroups | gmane.comp.java.picocontainer.cvs |
|---|---|
| Message-ID | <27854371.1157.1277832332481.JavaMail.haus-jira@codehaus01.managed.contegix.com> |
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
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>