This preview shows page 1. Sign up to view the full content.
Unformatted text preview: o see if the problem was resolved and I am still running into the issue. I am not sure if this is specific to the JDBC implementation for my SQL Server driver or not. Caused by: java.lang.NullPointerException at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:355) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:291) at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173) The problem looks to be caused by the callable statement not returning a result set in the executeQueryProcedure method. The rs variable is set to null and passed into the handleResults() method. This method attempts to get the Type, and the Null Pointer is thrown. This looks like a bug and this code executes normally in iBatis 2.0.9. Can't store a List in a Map Nested selects (N+1 selects) with a 1:N relation work fine as long as the primary result set is mapped to a JavaBean, but when the primary result set is mapped to a Map, iBATIS ignores the javaType of the column with the select attribute and treats it as a simple Object. This is a problem for 1:N cases since it needs to treat the column as a List and use queryForList() instead of queryForObject() to load it. A small change to com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.java seems to take care of the problem in my case, but there may be a corresponging change required for LazyLoading that I haven't looked into. ByteBuffer.wrap(byte n, int offset, int length) calls clear() on the wrapped NIO buffer clear() is called on the underlying NIO buffer wrapping the byte array. The consequence is that the position is set to 0 and the limit is set to capacity (the length of the wrapped array). Since this method should behave exactly as the NIO ByteBuffer equivalent the position should be set to offset and the limit should be set to offset+length. Whenever an existing NIO ByteBuffer is wrapped in a MINA ByteBuffer the NIO buffer is cl...
View Full Document
- Spring '09