ImmutableContext and ImmutableStructure truncate Instant values to milliseconds
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
Direzione di ricerca
Inizia leggendo Value.clone() e i percorsi di costruzione e lettura di ImmutableStructure descritti nell’issue. Controlla ImmutableStructureTest.MutatingGetInstantValueShouldNotChangeOriginalValue, che attualmente tronca l’input ai millisecondi. Il lavoro è completato quando un istante con precisione inferiore al millisecondo viene restituito invariato tramite getValue(key).asInstant(), asMap() e asObjectMap().
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
An Instant stored in an ImmutableStructure or ImmutableContext loses its sub-millisecond precision. getValue(key).asInstant(), asMap() and asObjectMap() return an instant truncated to milliseconds, so the value read back is not equal to the value stored.
Value.clone() copies instants with Instant.ofEpochMilli(instant.toEpochMilli()), and ImmutableStructure clones every value on construction and on each read.
Expected behavior
The stored Instant is returned unchanged. Instant is immutable, so a copy is not needed.
Steps to reproduce
Instant instant = Instant.ofEpochSecond(1_700_000_000L, 123_456_789L);
EvaluationContext ctx = new ImmutableContext(Map.of("t", new Value(instant)));
System.out.println(instant); // 2023-11-14T22:13:20.123456789Z
System.out.println(ctx.getValue("t").asInstant()); // 2023-11-14T22:13:20.123Z
Instant.now() has microsecond or finer resolution on Java 9 and later, so contexts built from Instant.now() are affected in practice. The existing ImmutableStructureTest.MutatingGetInstantValueShouldNotChangeOriginalValue test calls truncatedTo(ChronoUnit.MILLIS) to avoid this.
- Lingua principale
- Java
- Stelle
- 129
- Fork
- 62
- Merge medio
- 6h 37m
- PR unite (30g)
- 12
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di open-feature/java-sdk
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
open-feature/java-sdk#2019 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
perf: avoid creating exceptions when no hook implements the error stageForse già presa @toddbaert l’ha presa 29 giorni fa. Apertaenhancement
open-feature/java-sdk#2056 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
open-feature/java-sdk#2053 ·
I maintainer di solito rispondono entro 1 giorno
-
Spec v0.9.0 complianceApertav0.9.0
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
open-feature/java-sdk#1999 ·
I maintainer di solito rispondono entro 1 giorno
-
on setProvider call, shutting down the previous provider should happen before creating the new oneAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 50/100
open-feature/java-sdk#1934 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di open-feature/java-sdk
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
googleads/googleads-mobile-flutter#1541 ·
I maintainer di solito rispondono entro 4 giorni
-
Keyboard crashes Chrome tabsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
Julow/Unexpected-Keyboard#1490 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
Vakore/ZappierGames#275 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
unitycatalog/unitycatalog#2148 ·
I maintainer di solito rispondono entro 2 giorni
-
enhancement priority: low
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
Riptide-Labs/riptide#1060 ·
I maintainer di solito rispondono entro 1 giorno