Bug #99487 Mysql connector for java 8.0.20 shifts back LocalDate by one day when queried

Submitted: 8 May 2020 10:39 Modified: 12 May 2020 10:04
Reporter: Martin Soukup Email Updates:
Status: Not a Bug Impact on me:
None 
Category:Connector / J Severity:S3 (Non-critical)
Version:8.0.20 OS:Linux
Assigned to: CPU Architecture:x86
Tags: MySql Connector, spring boot

[8 May 2020 10:39] Martin Soukup
Description:
Hi, I have run into following issue after updating spring boot from 2.2.6 to 2.2.7:

When I save LocalDate with spring data jpa repository to mysql - for example:
2020-05-08, it is correctly written to database as 2020-05-08.

But when I later want to retrieve it with the repository what I get back is shifted by one day backwards:
2020-05-07. This started to happen only after this update.

I made sure that the database is set to UTC:
image
And I also set the application to the same timezone:

@ConfigurationPropertiesScan
@EnableScheduling
@SpringBootApplication
class EconomyApplication {

    @PostConstruct
    fun init() {
        TimeZone.setDefault(TimeZone.getTimeZone("UTC"))
    }
}

This problem is also described previously by someone on stackoverflow: https://stackoverflow.com/questions/54418827/mysql-date-changes-to-yesterdays-date-after-j...

How to repeat:
Save java LocalDate with spring data jpa and then retrieve it back - it will be shifted by one day backwards
[8 May 2020 10:41] Martin Soukup
This issue doesnt occur on version 8.0.19
[12 May 2020 8:14] Alexander Soklakov
Hi Martin,

If it was working for you with c/J 8.0.19 then it must be the consequences of the Bug#91112 fix. In c/J 8.0.20 LocalDate is rendered using the local JVM time zone which is altered in @PostConstruct. But the driver can follow this change only when cacheDefaultTimezone=false.

We have other issues with LocalDate/LocalTime/LocalDatetime reported in Bug#93444, so if setting cacheDefaultTimezone=false doesn't help then it's a duplicate bug for Bug#93444.
[12 May 2020 8:28] Martin Soukup
Hi, I added cacheDefaultTimezone=false

and now I dont get this error on 8.0.20. Thanks
[12 May 2020 10:04] Alexander Soklakov
Thanks for checking!

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.042 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.