[ http://issues.apache.org/jira/browse/AXIS2-1835?page=all ]
Benoit Decherf updated AXIS2-1835: ---------------------------------- Attachment: patchBeanUtil.patch I propose this patch. There is 2 changes: one is change the isArrayList method of SimpleTypeMapper to isCollection so that all collection could be return and not just ArrayList. The other one is to check if the ClassLoader is null and add the SystemClassLoader in this case. What do you think about this ? > return a java.lang.List return a java.lang.IllegalArgumentException: null rcl > ----------------------------------------------------------------------------- > > Key: AXIS2-1835 > URL: http://issues.apache.org/jira/browse/AXIS2-1835 > Project: Apache Axis 2.0 (Axis2) > Issue Type: Bug > Components: databinding > Affects Versions: 1.1 > Environment: jdk 1.5 > Reporter: Benoit Decherf > Assigned To: Deepal Jayasinghe > Attachments: patchBeanUtil.patch > > > I want to create a service which return an object containing a List: > The object to return: > public class Container { > private List myList = new ArrayList(); > public List getList() { > return myList; > } > } > The service (pojo) : > public class MyService { > private Container container = new Container(); > public Container getContainer() { > container.getList().add("a test"); > return container; > } > } > When I try to access the service I receive an Exception: > Caused by: java.lang.IllegalArgumentException: null rcl > at > org.codehaus.jam.internal.reflect.ReflectClassBuilder.<init>(ReflectClassBuilder.java:47) > at > org.codehaus.jam.provider.JamServiceFactoryImpl.createBuilder(JamServiceFactoryImpl.java:173) > I checked the code, and I saw in the class > org/apache/axis2/databinding/utils/BeanUtil, The only object I can use to > send a list is the ArrayList. Why ? > I change the isArrayList method in > org/apache/axis2/databinding/typemapping/SimpleTypeMapper to detect a > java.util.List instead of just the ArrayList and it works fine. So why limit > to ArrayList (and not just Collection)? > I think there is an other bug which return the IllegalArgumentException in > org.codehaus.jam.internal.reflect.ReflectClassBuilder.java: > In the method getPullParser of the class BeanUtil, there is no check on what > returns beanObject.getClass().getClassLoader() before doing the > addClassLoader. > Some implementations may use null to represent the bootstrap class loader. > This method will return null in such implementations if this class was loaded > by the bootstrap class loader. So that explain why the error is "null rcl". > Thanks, > Benoit -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]