Thread: Bad Timestamp Format at 23 in 2008-09-16 18:41:00.479
I have Postgresql 8.3 (PostgresPlus) running on an Apple with Tomcat 6. I am using the postgresql-8.3-603.jdbc3.jar driver. My app runs fine when on the apple, but when I move it over to a Windows machine running Tomcat 6 that accesses the same exact database on the Apple I get a "Bad Timestamp Format at 23 in 2008-09-16 18:41:00.479" error. I am guessing that it has something to do with how Java creates Dates on Unix verses Windows. What do I need to do to get this to work on the Windows machine? -- Thanks, Warren Bell 909-645-8864 warren@clarksnutrition.com
Warren Bell wrote: > I have Postgresql 8.3 (PostgresPlus) running on an Apple with Tomcat 6. > I am using the postgresql-8.3-603.jdbc3.jar driver. My app runs fine > when on the apple, but when I move it over to a Windows machine running > Tomcat 6 that accesses the same exact database on the Apple I get a "Bad > Timestamp Format at 23 in 2008-09-16 18:41:00.479" error. Can you post a code snippet? Yours, Laurenz Albe
On Wed, 17 Sep 2008, Warren Bell wrote: > I have Postgresql 8.3 (PostgresPlus) running on an Apple with Tomcat 6. I am > using the postgresql-8.3-603.jdbc3.jar driver. My app runs fine when on the > apple, but when I move it over to a Windows machine running Tomcat 6 that > accesses the same exact database on the Apple I get a "Bad Timestamp Format > at 23 in 2008-09-16 18:41:00.479" error. This isn't an error that the JDBC driver produces. Can you provide a stacktrace to show where this error is actually generated? Kris Jurka
I am using Ibatis as a object mapper and Spring as the DAO. Ibatis assures me that Ibatis is just passing the parameters strait to the driver without modifying them. Ibatis is logging the Insert statement as: DEBUG [http-8080-2] - {conn-100072} Preparing Statement: INSERT INTO receiveorder (rcv_date, rcv_po_number, rcv_invoice_number, rcv_vendor_code, rcv_vendor_name, rcv_str_fk, rcv_usr_fk, rcv_time_changed) values (?, ?, ?, ?, ?, ?, ?, NOW()) DEBUG [http-8080-2] - {pstm-100073} Executing Statement: INSERT INTO receiveorder (rcv_date, rcv_po_number, rcv_invoice_number, rcv_vendor_code, rcv_vendor_name, rcv_str_fk, rcv_usr_fk, rcv_time_changed) values (?, ?, ?, ?, ?, ?, ?, NOW()) DEBUG [http-8080-2] - {pstm-100073} Parameters: [2008-09-17 19:55:44.774, 333, 333, 93 , American Biologics , 1, 3] DEBUG [http-8080-2] - {pstm-100073} Types: [java.sql.Timestamp, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.Integer] rcv_date is the field that is causing the problem not the NOW() function. When this statement in executed from the Apple machine the timestamp in the db is 2008-09-17 19:55:44.774 and when it is executed on the Windows machine the timestamp in the db is 2008-09-17 19:55:44.77 . On the Windows machine it looses the last decimal of the milliseconds from miliseconds to hundreths. When the Windows machine does a SELECT on the record with the milliseconds it gives me the following exception: DEBUG [http-8080-1] - {pstm-100294} Executing Statement: SELECT rcv_pk, rcv_str_fk, rcv_date, rcv_po_number, rcv_invoice_number, rcv_vendor_code, rcv_vendor_name, rcv_processed, rcv_report, rcv_usr_fk FROM receiveorder WHERE rcv_processed = ? ORDER BY rcv_date DESC DEBUG [http-8080-1] - {pstm-100294} Parameters: [false] DEBUG [http-8080-1] - {pstm-100294} Types: [java.lang.Boolean] DEBUG [http-8080-1] - {rset-100295} Result: [3737, 1, 2008-09-18 02:35:36.8, 454 , 323 , 329 , Garden Of Life , false, false, 3, 3737] org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; --- The error occurred in com/clarks/spanky/persistence/sqlmapdao/sql/postgres/recvOrder-postgres.xml. --- The error occurred while applying a result map. --- Check the RecvOrder.recvOrderWithLineItemsResult. --- Check the result mapping for the 'recvOrderDate' property. --- Cause: Bad Timestamp Format at 23 in 2008-09-17 19:49:03.327; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/clarks/spanky/persistence/sqlmapdao/sql/postgres/recvOrder-postgres.xml. --- The error occurred while applying a result map. --- Check the RecvOrder.recvOrderWithLineItemsResult. --- Check the result mapping for the 'recvOrderDate' property. --- Cause: Bad Timestamp Format at 23 in 2008-09-17 19:49:03.327 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:121) at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212) at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:249) at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:296) at com.clarks.spanky.persistence.sqlmapdao.RecvOrderSqlMapDao.getProcessedRecvOrderListWithLineItems(RecvOrderSqlMapDao.java:49) at com.clarks.spanky.service.ReceivingService.getProcessedRecvOrderListWithLineItems(ReceivingService.java:82) at com.clarks.spanky.presentation.ReceivingBean.goToOpenedReceivings(ReceivingBean.java:238) at com.clarks.spanky.presentation.NavRecvBean.receivingNavigation(NavRecvBean.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.clarks.struts.BeanAction.execute(BeanAction.java:123) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) at java.lang.Thread.run(Thread.java:619) Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/clarks/spanky/persistence/sqlmapdao/sql/postgres/recvOrder-postgres.xml. --- The error occurred while applying a result map. --- Check the RecvOrder.recvOrderWithLineItemsResult. --- Check the result mapping for the 'recvOrderDate' property. --- Cause: Bad Timestamp Format at 23 in 2008-09-17 19:49:03.327 at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:615) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:298) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209) ... 29 more Caused by: Bad Timestamp Format at 23 in 2008-09-17 19:49:03.327 at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:517) at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:675) at org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:262) at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47) at $Proxy4.getTimestamp(Unknown Source) at com.ibatis.sqlmap.engine.type.DateTypeHandler.getResult(DateTypeHandler.java:38) at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getPrimitiveResultMappingValue(BasicResultMap.java:611) at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getResults(BasicResultMap.java:344) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:381) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:205) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173) ... 35 more Kris Jurka wrote: > > > On Wed, 17 Sep 2008, Warren Bell wrote: > >> I have Postgresql 8.3 (PostgresPlus) running on an Apple with Tomcat >> 6. I am using the postgresql-8.3-603.jdbc3.jar driver. My app runs >> fine when on the apple, but when I move it over to a Windows machine >> running Tomcat 6 that accesses the same exact database on the Apple I >> get a "Bad Timestamp Format at 23 in 2008-09-16 18:41:00.479" error. > > This isn't an error that the JDBC driver produces. Can you provide a > stacktrace to show where this error is actually generated? > > Kris Jurka -- Thanks, Warren Bell 909-645-8864 warren@clarksnutrition.com
On Thu, 18 Sep 2008, Warren Bell wrote: > Caused by: Bad Timestamp Format at 23 in 2008-09-17 19:49:03.327 > at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:517) > at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:675) > at This stacktrace is from a 7.2 or earlier JDBC driver, so you definitely aren't using 8.3-603. Kris Jurka
I looked all over for another postgres jdbc driver on this machine and the only one that I could find is postgresql-8.3-603.jdbc3.jar the one I have in the apps lib directory. I downloaded the latest jdbc driver and the latest Ibatis drive and I am still getting an exception. Could there be a driver hidden in another jar? Can you force the driver to act as a 7.2 driver in some way? DEBUG [http-8080-2] - {rset-100062} Result: [3741, 1, 2008-09-18 02:55:44.77, 333 , 333 , 93 , American Biologics , false, false, 3, 3741] org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; --- The error occurred in com/clarks/spanky/persistence/sqlmapdao/sql/postgres/recvOrder-postgres.xml. --- The error occurred while applying a result map. --- Check the RecvOrder.recvOrderWithLineItemsResult. --- Check the result mapping for the 'recvOrderDate' property. --- Cause: Bad Timestamp Format at 23 in 2008-09-17 19:52:41.584; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/clarks/spanky/persistence/sqlmapdao/sql/postgres/recvOrder-postgres.xml. --- The error occurred while applying a result map. --- Check the RecvOrder.recvOrderWithLineItemsResult. --- Check the result mapping for the 'recvOrderDate' property. --- Cause: Bad Timestamp Format at 23 in 2008-09-17 19:52:41.584 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:121) at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212) at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:249) at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:296) at com.clarks.spanky.persistence.sqlmapdao.RecvOrderSqlMapDao.getProcessedRecvOrderListWithLineItems(RecvOrderSqlMapDao.java:49) at com.clarks.spanky.service.ReceivingService.getProcessedRecvOrderListWithLineItems(ReceivingService.java:82) at com.clarks.spanky.presentation.ReceivingBean.goToOpenedReceivings(ReceivingBean.java:238) at com.clarks.spanky.presentation.NavRecvBean.receivingNavigation(NavRecvBean.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.clarks.struts.BeanAction.execute(BeanAction.java:123) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) at java.lang.Thread.run(Thread.java:619) Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/clarks/spanky/persistence/sqlmapdao/sql/postgres/recvOrder-postgres.xml. --- The error occurred while applying a result map. --- Check the RecvOrder.recvOrderWithLineItemsResult. --- Check the result mapping for the 'recvOrderDate' property. --- Cause: Bad Timestamp Format at 23 in 2008-09-17 19:52:41.584 at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:185) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:615) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:298) at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209) ... 29 more Caused by: Bad Timestamp Format at 23 in 2008-09-17 19:52:41.584 at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:517) at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:675) at org.apache.commons.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:262) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47) at $Proxy4.getTimestamp(Unknown Source) at com.ibatis.sqlmap.engine.type.DateTypeHandler.getResult(DateTypeHandler.java:38) at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getPrimitiveResultMappingValue(BasicResultMap.java:611) at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getResults(BasicResultMap.java:344) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:381) at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:205) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173) ... 35 more Kris Jurka wrote: > > > On Thu, 18 Sep 2008, Warren Bell wrote: > >> Caused by: Bad Timestamp Format at 23 in 2008-09-17 19:49:03.327 >> at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:517) >> at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:675) >> at > > This stacktrace is from a 7.2 or earlier JDBC driver, so you > definitely aren't using 8.3-603. > > Kris Jurka > -- Thanks, Warren Bell 909-645-8864 warren@clarksnutrition.com
My mistake, I found 7.2 in my classpath. I deleted it and everything works fine. > > Kris Jurka wrote: >> >> >> On Thu, 18 Sep 2008, Warren Bell wrote: >> >>> Caused by: Bad Timestamp Format at 23 in 2008-09-17 19:49:03.327 >>> at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:517) >>> at org.postgresql.jdbc2.ResultSet.getTimestamp(ResultSet.java:675) >>> at >> >> This stacktrace is from a 7.2 or earlier JDBC driver, so you >> definitely aren't using 8.3-603. >> >> Kris Jurka >> > > -- Thanks, Warren Bell 909-645-8864 warren@clarksnutrition.com