Jsr250BeanPostProcessor, non reentrant ResourceInjector results in
IllegalArgumentException
-------------------------------------------------------------------------------------------
Key: CXF-1192
URL: https://issues.apache.org/jira/browse/CXF-1192
Project: CXF
Issue Type: Bug
Components: Core
Affects Versions: 2.0.3
Reporter: Gary Tully
Priority: Minor
The Jsr250BeanPostProcessor[1], uses a single instance of the non reentrant
ResourceInjector. If the bean has two postConstruct methods and the first
results in another bean creation which has a postConstruct method we have
trouble. For a postConstruct method, the ResourceInjector sets a Target
reference member variable and invokes the method. If the postConstrcut method
results in another bean being created that has a postConstrcut annotation the
single ResourceInjector gets it's target reference changed and the result is an
IllegalArgumentException on calling a subsequent postConstruct method.
The simplest fix is to have the Jsr250BeanPostProcessor use a new
ResourceInjector for every bean.
The scenario that showed this bug has been worked around so I don't have an
easy test case but one can be fabricated around the spring tests in core by
following the description and adding the Jsr250BeanPostProcessor to the
configuration.
[1]
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/Jsr250BeanPostProcessor.java?view=markup
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.