DateTypeHandler throws NullPointerException on null Timestamps for some drivers -------------------------------------------------------------------------------
Key: IBATIS-310 URL: http://issues.apache.org/jira/browse/IBATIS-310 Project: iBatis for Java Type: Bug Components: SQL Maps Versions: 2.1.6 Environment: JDBC Driver: JT Open driver for AS/400 (tested 4.8, 4.9, and 5.1.1) Reporter: Matt DeHoust The problem is in DateTypeHandler in the getResult method. java.sql.Timestamp sqlTimestamp = rs.getTimestamp(columnName); if (rs.wasNull()) { return null; } else { return new java.util.Date(sqlTimestamp.getTime()); } In our case, the JDBC driver is returning null, but wasNull() returns false because the database value is not null. The AS/400 uses a special low value ('0001-01-01') to represent null dates and timestamps. Since Timestamp is an object, the recommended fix is to simply check for null rather than using wasNull as follows. java.sql.Timestamp sqlTimestamp = rs.getTimestamp(columnName); if (sqlTimestamp == null) { return null; } else { return new java.util.Date(sqlTimestamp.getTime()); } -- 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