openwhisk-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Sicker <boa...@gmail.com>
Subject Re: [jdk11] - Difference in java.time.Instant creation causing test failure
Date Tue, 28 May 2019 22:35:38 GMT
Isn’t there a truncate method on most of the temporal classes? You can
truncate to milliseconds.

On Tue, May 28, 2019 at 10:02, Chetan Mehrotra <chetan.mehrotra@gmail.com>
wrote:

> 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
>
-- 
Matt Sicker <boards@gmail.com>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message