ImmutableContext and ImmutableStructure truncate Instant values to milliseconds
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 76/100
Piste de recherche
Commencez par lire Value.clone() et les chemins de construction et de lecture de ImmutableStructure décrits dans l’issue. Vérifiez ImmutableStructureTest.MutatingGetInstantValueShouldNotChangeOriginalValue, qui tronque actuellement son entrée à la milliseconde. Le travail est terminé lorsqu’un instant avec une précision inférieure à la milliseconde est renvoyé sans modification par getValue(key).asInstant(), asMap() et asObjectMap().
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Java
- Étoiles
- 129
- Forks
- 62
- Merge moyen
- 6 h 37 min
- PR mergées (30 j)
- 12
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de open-feature/java-sdk
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
open-feature/java-sdk#2019 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
perf: avoid creating exceptions when no hook implements the error stagePeut-être pris @toddbaert l’a pris il y a 29 jours. Ouverteenhancement
open-feature/java-sdk#2056 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
open-feature/java-sdk#2053 ·
Les mainteneurs répondent en général sous 1 jour
-
Spec v0.9.0 complianceOuvertev0.9.0
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
open-feature/java-sdk#1999 ·
Les mainteneurs répondent en général sous 1 jour
-
on setProvider call, shutting down the previous provider should happen before creating the new oneOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 50/100
open-feature/java-sdk#1934 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de open-feature/java-sdk
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
googleads/googleads-mobile-flutter#1541 ·
Les mainteneurs répondent en général sous 4 jours
-
Keyboard crashes Chrome tabsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
Julow/Unexpected-Keyboard#1490 ·
Les mainteneurs répondent en général sous 4 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Vakore/ZappierGames#275 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
unitycatalog/unitycatalog#2148 ·
Les mainteneurs répondent en général sous 2 jours
-
enhancement priority: low
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
Riptide-Labs/riptide#1060 ·
Les mainteneurs répondent en général sous 1 jour