Hi Team, As part of supporting JDK 11 I am seeing some test failure due to change in behavior of way java.time.Instant now works. As noted in [1] [2] with JDK 11 Instant.now is constructed with microsecond precision [3] compared to millisecond in JDK 8 [4].
This causes issue when entities in test are compared after and before persisting in DB. When we store the entity in DB then its stored with millisecond precision while the in memory entity refers to Instant value with microsecond precision which leads to test failures [5] when such entity instances are checked for equality. So far my understanding is that this change in behaviour impacts on test code and most likely it should not impact production code. So need to find a way to retain old behaviour for Instant. Possible options 1. Create an extension method for Instant like `Instant.nowInMillis` and use that in Test case 2. Use a custom `WhiskInstant` in our entity classes to have full control on precision Any other which team may suggest Thoughts? Chetan Mehrotra [1] https://github.com/apache/incubator-openwhisk/issues/4217#issuecomment-496469481 [2] https://github.com/h2database/h2database/issues/1178 [3] https://github.com/openjdk/jdk/blob/jdk-11%2B28/src/java.base/share/classes/java/time/Clock.java#L524 [4] https://github.com/openjdk/jdk/blob/jdk8-b120/jdk/src/share/classes/java/time/Clock.java#L470 [5] https://scans.gradle.com/s/sf7udehikj6g2/tests/failed