On 05/12/2010, at 8:08 PM, Paul Hoadley wrote:
EOF calls PreparedStatement.setTimestamp(int, Timestamp) (implemented in AbstractJdbc2Statement), which in turn calls PreparedStatement.setTimestamp(int, Timestamp, Calendar) with a null Calendar.
Just for completeness, that's not quite true. Ramsey pointed out that JDBCColumn.takeInputValue() calls setObject() on that class. This is the top of the stack trace in setTimestamp(int, Timestamp, Calendar):
at org.postgresql.jdbc2.AbstractJdbc2Statement.setTimestamp(AbstractJdbc2Statement.java:3049)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setTimestamp(AbstractJdbc2Statement.java:1334)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1649)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1438)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1700)
at com.webobjects.jdbcadaptor.JDBCColumn.takeInputValue(JDBCColumn.java:569)
at com.webobjects.jdbcadaptor.JDBCChannel._bindInputVariablesWithBindingsAndExecute(JDBCChannel.java:260)
at com.webobjects.jdbcadaptor.JDBCChannel._evaluateExpression(JDBCChannel.java:337)
at com.webobjects.jdbcadaptor.JDBCChannel.evaluateExpression(JDBCChannel.java:296)
at com.webobjects.jdbcadaptor.JDBCChannel.selectAttributes(JDBCChannel.java:220)
at com.webobjects.eoaccess.EODatabaseChannel._selectWithFetchSpecificationEditingContext(EODatabaseChannel.java:897)
at com.webobjects.eoaccess.EODatabaseChannel.selectObjectsWithFetchSpecification(EODatabaseChannel.java:234)
at com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java:3055)
at com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecification(EODatabaseContext.java:3195)
at com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsWithFetchSpecification(EOObjectStoreCoordinator.java:488)
setObject() is called, and then eventually setTimestamp(int, Timestamp) then setTimestamp(int, Timestamp, null). So I was wrong to implicate EOF even peripherally: looks like it's entirely the JDBC driver.