Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DateTimeParseException for TIMESTAMP WITH TIME ZONE #256

Closed
pschorf opened this issue Jan 17, 2016 · 3 comments
Closed

DateTimeParseException for TIMESTAMP WITH TIME ZONE #256

pschorf opened this issue Jan 17, 2016 · 3 comments
Labels

Comments

@pschorf
Copy link

pschorf commented Jan 17, 2016

I'm getting the following stactrace when trying to parse '2016-01-17 14:28:07.456' from postgres. I have the column mapped to ZonedDateTime in slick, and the field was populated with ZonedDateTime.now(Clock.systemUTC()). It's weird because the error is transient, the webapp works for a while but eventually starts failing to load the row with the exception below.

(Version 0.11.0, slick version 3.1.1)

play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[DateTimeParseException: Text '2016-01-17 14:28:07.456' could not be parsed at index 23]]
at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:265) ~[play_2.11-2.4.6.jar:2.4.6]
at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:191) ~[play_2.11-2.4.6.jar:2.4.6]
at play.api.GlobalSettings$class.onError(GlobalSettings.scala:179) [play_2.11-2.4.6.jar:2.4.6]
at play.api.DefaultGlobal$.onError(GlobalSettings.scala:212) [play_2.11-2.4.6.jar:2.4.6]
at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:94) [play_2.11-2.4.6.jar:2.4.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:151) [play-netty-server_2.11-2.4.6.jar:2.4.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:148) [play-netty-server_2.11-2.4.6.jar:2.4.6]
at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) [scala-library-2.11.7.jar:na]
at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:216) [scala-library-2.11.7.jar:na]
at scala.util.Try$.apply(Try.scala:192) [scala-library-2.11.7.jar:na]
at scala.util.Failure.recover(Try.scala:216) [scala-library-2.11.7.jar:na]
at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [scala-library-2.11.7.jar:na]
at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [scala-library-2.11.7.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [scala-library-2.11.7.jar:na]
at play.api.libs.iteratee.Execution$trampoline$.executeScheduled(Execution.scala:109) [play-iteratees_2.11-2.4.6.jar:2.4.6]
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:71) [play-iteratees_2.11-2.4.6.jar:2.4.6]
at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) [scala-library-2.11.7.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) [scala-library-2.11.7.jar:na]
at scala.concurrent.Promise$class.complete(Promise.scala:55) [scala-library-2.11.7.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) [scala-library-2.11.7.jar:na]
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) [scala-library-2.11.7.jar:na]
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) [scala-library-2.11.7.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [scala-library-2.11.7.jar:na]
at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55) [akka-actor_2.11-2.3.13.jar:na]
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:91) [akka-actor_2.11-2.3.13.jar:na]
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91) [akka-actor_2.11-2.3.13.jar:na]
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91) [akka-actor_2.11-2.3.13.jar:na]
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) [scala-library-2.11.7.jar:na]
at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:90) [akka-actor_2.11-2.3.13.jar:na]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40) [akka-actor_2.11-2.3.13.jar:na]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397) [akka-actor_2.11-2.3.13.jar:na]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [scala-library-2.11.7.jar:na]
Caused by: java.time.format.DateTimeParseException: Text '2016-01-17 14:28:07.456' could not be parsed at index 23
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) ~[na:1.8.0_60]
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) ~[na:1.8.0_60]
at java.time.ZonedDateTime.parse(ZonedDateTime.java:597) ~[na:1.8.0_60]
at com.github.tminglei.slickpg.PgDate2Support$Date2DateTimeFormatters$$anonfun$4.apply(PgDate2Support.scala:78) ~[slick-pg_date2_2.11-0.11.0.jar:0.11.0]
at com.github.tminglei.slickpg.PgDate2Support$Date2DateTimeFormatters$$anonfun$4.apply(PgDate2Support.scala:78) ~[slick-pg_date2_2.11-0.11.0.jar:0.11.0]
at com.github.tminglei.slickpg.PgDate2Support$Date2DateTimeFormatters$$anonfun$fromInfinitable$1.apply(PgDate2Support.scala:68) ~[slick-pg_date2_2.11-0.11.0.jar:0.11.0]
at com.github.tminglei.slickpg.PgDate2Support$Date2DateTimeFormatters$$anonfun$fromInfinitable$1.apply(PgDate2Support.scala:65) ~[slick-pg_date2_2.11-0.11.0.jar:0.11.0]
at com.github.tminglei.slickpg.utils.PgCommonJdbcTypes$GenericJdbcType.getValue(PgCommonJdbcTypes.scala:23) ~[slick-pg_core_2.11-0.11.0.jar:0.11.0]
at slick.jdbc.SpecializedJdbcResultConverter$$anon$1.read(SpecializedJdbcResultConverters.scala:26) ~[slick_2.11-3.1.1.jar:na]
at slick.jdbc.SpecializedJdbcResultConverter$$anon$1.read(SpecializedJdbcResultConverters.scala:24) ~[slick_2.11-3.1.1.jar:na]
at slick.relational.ProductResultConverter.read(ResultConverter.scala:56) ~[slick_2.11-3.1.1.jar:na]
at slick.relational.ProductResultConverter.read(ResultConverter.scala:46) ~[slick_2.11-3.1.1.jar:na]
at slick.relational.TypeMappingResultConverter.read(ResultConverter.scala:136) ~[slick_2.11-3.1.1.jar:na]
at slick.relational.ProductResultConverter.read(ResultConverter.scala:56) ~[slick_2.11-3.1.1.jar:na]
at slick.relational.ProductResultConverter.read(ResultConverter.scala:46) ~[slick_2.11-3.1.1.jar:na]
at slick.driver.JdbcInvokerComponent$QueryInvokerImpl.extractValue(JdbcInvokerComponent.scala:37) ~[slick_2.11-3.1.1.jar:na]
at slick.jdbc.StatementInvoker$$anon$1.extractValue(StatementInvoker.scala:67) ~[slick_2.11-3.1.1.jar:na]
at slick.jdbc.PositionedResultIterator.fetchNext(PositionedResult.scala:176) ~[slick_2.11-3.1.1.jar:na]
at slick.util.ReadAheadIterator$class.slick$util$ReadAheadIterator$$update(ReadAheadIterator.scala:34) ~[slick_2.11-3.1.1.jar:na]
at slick.util.ReadAheadIterator$class.hasNext(ReadAheadIterator.scala:40) ~[slick_2.11-3.1.1.jar:na]
at slick.jdbc.PositionedResultIterator.hasNext(PositionedResult.scala:167) ~[slick_2.11-3.1.1.jar:na]
at scala.collection.Iterator$class.foreach(Iterator.scala:742) ~[scala-library-2.11.7.jar:na]
at slick.jdbc.PositionedResultIterator.foreach(PositionedResult.scala:167) ~[slick_2.11-3.1.1.jar:na]
at slick.jdbc.Invoker$class.foreach(Invoker.scala:49) ~[slick_2.11-3.1.1.jar:na]
at slick.jdbc.StatementInvoker.foreach(StatementInvoker.scala:16) ~[slick_2.11-3.1.1.jar:na]
at slick.jdbc.StreamingInvokerAction$class.run(StreamingInvokerAction.scala:22) ~[slick_2.11-3.1.1.jar:na]
at slick.driver.JdbcActionComponent$QueryActionExtensionMethodsImpl$$anon$1.run(JdbcActionComponent.scala:218) ~[slick_2.11-3.1.1.jar:na]
at slick.driver.JdbcActionComponent$QueryActionExtensionMethodsImpl$$anon$1.run(JdbcActionComponent.scala:218) ~[slick_2.11-3.1.1.jar:na]
at slick.backend.DatabaseComponent$DatabaseDef$$anon$2.liftedTree1$1(DatabaseComponent.scala:237) ~[slick_2.11-3.1.1.jar:na]
at slick.backend.DatabaseComponent$DatabaseDef$$anon$2.run(DatabaseComponent.scala:237) ~[slick_2.11-3.1.1.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_60]

@pschorf
Copy link
Author

pschorf commented Jan 17, 2016

It looks like there is some inconsistency on whether an offset is returned when calling getString with a resultset.

@tminglei
Copy link
Owner

@pschorf don't know which version of postgres jdbc driver. But if you used a newer one, it's possible.

#220 discussed and resolved it, pls check it.

@pschorf pschorf closed this as completed Jan 18, 2016
@pschorf
Copy link
Author

pschorf commented Jan 18, 2016

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants