[
https://issues.apache.org/jira/browse/BEANUTILS-409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13591439#comment-13591439
]
Senthil Kumar Balakrishnan edited comment on BEANUTILS-409 at 3/2/13 4:58 PM:
------------------------------------------------------------------------------
Fix & Testcases as part of the attachment "BEANUTILS-409-FIX.patch"
Summary,
Test:
1. Jira409TestCase - Added to test Array Values return all values on describe()
- (BeanUtilsBean2).
2. BeanUtils2TestCase - Updated testDescribe() to test the behaviour.
3. BeanUtilsTestCase - Updated testDescribe() to ensure the old behaviour is
untouched due the to backward compatibility (as Indicated by Niall).
Fix:
1. ConvertUtilsBean - Added a new method createConverterFacade to expose the
actual converter to the extending child class (Ex: ConvertUtilsBean2).
2. ConvertUtilsBean2 - Implement setOnlyFirstToString for all ArrayConverter
types, using the above exposed method (createConverterFacade).
protected ConverterFacade createConverterFacade(Converter converter) {
if(converter instanceof ArrayConverter){
((ArrayConverter)
converter).setOnlyFirstToString(false);
}
return super.createConverterFacade(converter);
}
was (Author: senhce):
Fix & Testcases as part of the attachment "BEANUTILS-409-FIX.patch"
Summary,
Test:
1. Jira409TestCase - Added to test Array Values return all values on describe()
- (BeanUtilsBean2).
2. BeanUtils2TestCase - Updated testDescribe() to test the behaviour.
3. BeanUtilsTestCase - Updated testDescribe() to ensure the old behaviour is
untouched due the to backward compatibility (as Indicated by Niall).
Fix:
1. ConvertUtilsBean - Added a new method createConverterFacade to expose the
actual converter to the extending child class (Ex: ConvertUtilsBean2).
2. ConvertUtilsBean2 - Implement setOnlyFirstToString for all ArrayConverter
types, using the above exposed method (createConverterFacade).
protected ConverterFacade createConverterFacade(Converter converter) {
if(converter instanceof ArrayConverter){
((ArrayConverter)
converter).setOnlyFirstToString(false);
}
return new ConverterFacade(converter);
}
> BeanUtils - 'describe' method returning Incorrect array value
> -------------------------------------------------------------
>
> Key: BEANUTILS-409
> URL: https://issues.apache.org/jira/browse/BEANUTILS-409
> Project: Commons BeanUtils
> Issue Type: Bug
> Affects Versions: 1.8.3
> Environment: commons-beanutils 1.8.3, jdk 1.6.0_20
> Reporter: benny
> Assignee: Benedikt Ritter
> Priority: Critical
> Labels: describe
> Fix For: 1.8.4
>
> Attachments: BEANUTILS-409-Test.patch
>
>
> I want to convert a bean class to a map (key=the name of the member,value=the
> value of the member).
> I'm using the method BeanUtils.describe(beanClass);
> (I'm using commons-beanutils 1.8.3, jdk 1.6.0_20, on commons-beanutils 1.5 it
> works)
> The problem is that the return value is incorrect, (the map contain only the
> first item from the array),
> the code:
> public class Demo {
> private ArrayList<String> myList = new ArrayList<String>();
> public Demo() {
> myList.add("first_value");
> myList.add("second_value");
> }
>
> public ArrayList<String> getMyList() {
> return myList;
> }
>
> public void setMyList(ArrayList<String> myList) {
> this.myList = myList;
> }
>
> public static void main(String[] args) {
> Demo myBean = new Demo();
> try {
> Map describe = BeanUtils.describe(myBean);
> Iterator it = describe.entrySet().iterator();
> while (it.hasNext()) {
> Map.Entry pairs = (Map.Entry) it.next();
> System.out.println(String.format("key=%s,value=%s",
> (String) pairs.getKey(), (String) pairs.getValue()));
>
> }
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> •The expected output:
>
> key=myList,value=[first_value,second_value]
> key=class,value=class $Demo
> •But the real output is:
>
> key=myList,value=[first_value]
> key=class,value=class $Demo
> As you can see the array contains two values but the output(and the map)
> contains only one,why??
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira