struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Mansfield (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WW-3748) s:bean doesn't allow creation of beans from a spring object factory using the bean's id
Date Wed, 29 Feb 2012 14:59:56 GMT

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

David Mansfield commented on WW-3748:
-------------------------------------

That is exactly what the default ObjectFactory.buildBean(String, Map, boolean) does, so the
logic shouldn't be duplicated in Bean.java, IMHO.  But if a subclass overrides (as SpringObjectFactory
does) it can to the right thing WRT bean ids.

To summarize, if SpringObjectFactory is not used, the change suggested in the description
changes nothing AFAIK.  This is easy to verify looking at ObjectFactory.java

If SpringObjectFactory is used, and the string passed is NOT a bean-id, the change suggested
changes nothing.  This is somewhat more difficult, but can be verified looking at SpringObjectFactory.java.
 

If SpringObjectFactory is used, and the string passed IS a bean-id, and not a class-name,
the code would not be working today, but would be working after the fix.

                
> s:bean doesn't allow creation of beans from a spring object factory using the bean's
id
> ---------------------------------------------------------------------------------------
>
>                 Key: WW-3748
>                 URL: https://issues.apache.org/jira/browse/WW-3748
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Actions
>    Affects Versions: 2.3.1.1
>         Environment: linux, jdk 1.6
>            Reporter: David Mansfield
>            Priority: Minor
>             Fix For: 2.3.2
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> on core/src/main/java/org/apache/struts2/components/Bean.java line 128:
>             bean = objectFactory.buildBean(ClassLoaderUtil.loadClass(beanName, getClass()),
stack.getContext());
> Shouldn't this be:
>             bean = objectFactory.buildBean(beanName, stack.getContext(), false);
> The factory knows how to get a Class from a String as well as anyone, but the "name"
is not necessarily a class name when the bean is the id of a spring bean.
> This affects s:bean tag.
> AFAICT all versions are affected (just checked svn trunk).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message