[ http://issues.apache.org/jira/browse/IBATIS-361?page=comments#action_12445932 ] Christian Poitras commented on IBATIS-361: ------------------------------------------
>From what I see, the problem seems to be in GenericProbe. This method doesn't handle the case where a property might be a List. Maybe adding a "if (name.indexOf('['))" and removing the array part might correct the problem. I will make a patch and add it here if it solves the problem. private Class getClassPropertyTypeForGetter(Class type, String name) { if (name.indexOf('.') > -1) { StringTokenizer parser = new StringTokenizer(name, "."); while (parser.hasMoreTokens()) { name = parser.nextToken(); if (Map.class.isAssignableFrom(type)) { type = Object.class; break; } type = ClassInfo.getInstance(type).getGetterType(name); } } else { type = ClassInfo.getInstance(type).getGetterType(name); } return type; } > Problem addressing list index in a parameter declaration > --------------------------------------------------------- > > Key: IBATIS-361 > URL: http://issues.apache.org/jira/browse/IBATIS-361 > Project: iBatis for Java > Issue Type: Bug > Components: SQL Maps > Affects Versions: 2.2.0 > Reporter: Reuben Firmin > > I have the following code: > public class Buyer > { > ... > private Address mailingAddress; > > ... > public class Address > { > private List<String> addressLine; > ... > public List<String> getAddressLine() > { > In my insert statement, I'm addressing this as: > #mailingAddress.addressLine[0]#, #mailingAddress.addressLine[1]#, > When I start the webapp, I'm getting this exception: > ... > [11:08:02.736] Caused by: com.ibatis.common.beans.ProbeException: There is no > READABLE property named 'addressLine[0]' in class > 'com.copart.c2.buyer.bo.Address' > [11:08:02.736] at > com.ibatis.common.beans.ClassInfo.getGetterType(ClassInfo.java:240) > [11:08:02.736] at > com.ibatis.common.beans.GenericProbe.getClassPropertyTypeForGetter(GenericProbe.java:221) > [11:08:02.736] at > com.ibatis.common.beans.GenericProbe.getPropertyTypeForGetter(GenericProbe.java:153) > [11:08:02.736] at > com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.resolveTypeHandler(InlineParameterMapParser.java:229) > [11:08:02.736] at > com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.newParseMapping(InlineParameterMapParser.java:138) > [11:08:02.736] at > com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.parseInlineParameterMap(InlineParameterMapParser.java:50) > [11:08:02.736] at > com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.applyInlineParameterMap(SqlStatementParser.java:428) > [11:08:02.736] at > com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.processSqlStatement(SqlStatementParser.java:216) > [11:08:02.736] at > com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.parseGeneralStatement(SqlStatementParser.java:121) > [11:08:02.736] at > com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$19.process(SqlMapParser.java:553) > [11:08:02.736] at > com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:111) > I will debug further and will append to this bug. -- 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