ImmutableContext and ImmutableStructure truncate Instant values to milliseconds
Mantenedores costumam responder em até 1 dia
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 76/100
Direção de pesquisa
Comece lendo Value.clone() e os caminhos de construção e leitura de ImmutableStructure descritos na issue. Verifique ImmutableStructureTest.MutatingGetInstantValueShouldNotChangeOriginalValue, que atualmente trunca a entrada para milissegundos. O trabalho está concluído quando um instante com precisão inferior a um milissegundo é retornado sem alterações por getValue(key).asInstant(), asMap() e asObjectMap().
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Java
- Estrelas
- 129
- Forks
- 62
- Merge médio
- 6h 37min
- PRs com merge (30d)
- 12
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de open-feature/java-sdk
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
open-feature/java-sdk#2019 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
perf: avoid creating exceptions when no hook implements the error stageTalvez já em andamento @toddbaert assumiu há 30 dias. Abertaenhancement
open-feature/java-sdk#2056 · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
open-feature/java-sdk#2053 ·
Mantenedores costumam responder em até 1 dia
-
Spec v0.9.0 complianceAbertav0.9.0
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
open-feature/java-sdk#1999 ·
Mantenedores costumam responder em até 1 dia
-
on setProvider call, shutting down the previous provider should happen before creating the new oneAberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 50/100
open-feature/java-sdk#1934 · 1 reação ·
Mantenedores costumam responder em até 1 dia
Todas as issues de open-feature/java-sdk
Issues semelhantes
-
hermes-queue
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
chrisalunlloyd2-sudo/mindpalace#349 ·
Mantenedores costumam responder em até 1 dia
-
Retry-After parser accepts invalid delay-seconds valuesTalvez já em andamento @Dhruvraj-Rana assumiu hoje. AbertaBug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
open-telemetry/opentelemetry-java#9018 ·
Mantenedores costumam responder em até 2 dias
-
bug priority: medium Review effort [1-5]: 2 status: needs-triage type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
carlos-emr/carlos#5818 ·
Mantenedores costumam responder em até 1 dia
-
bug good first issue help wanted tooling
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
appmonster007/kmip-adapter#100 ·
-
accepted good first issue java
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia