ServerValues.resolveDeferredValue has incorrect cast
Mantenedores costumam responder em até 4 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
Comece em ServerValues.resolveDeferredValue em ServerValues.java:44 e rastreie seus chamadores por meio de ServerValues.resolveDeferredValueSnapshot e Repo.setValue. Reproduza a falha usando DatabaseReference.setValue com o valor de incremento .sv documentado em formato de map. Está concluído quando essa entrada não falhar mais com a ClassCastException relatada e o comportamento tiver sido verificado de acordo com as etapas de reprodução da issue.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
- Operating System version: Gentoo Linux
- Firebase SDK version: 9.3.0
- Library version: 9.3.0 (but the bug goes back to at least 8.1.0)
- Firebase Product: RTDB
As ServerValue.increment is still not supported by this SDK 4 years after its introduction, I tried implementing it manually. This triggers a ClassCastException inside the SDK due to a bad assumption that the value of the .sv key is always a String.
Steps to reproduce:
- Create the data structure for ServerValue.increment as described in documentation (such as the REST documentation):
{
".sv": {
"increment": delta
}
}
- Call
setValueusing this data structure.
Relevant Code:
var node = databaseNode();
node.setValue(Map.of(".sv", Map.of("increment", delta)), callback);
Error:
2024-06-21T19:58:12,008Z [firebase-database-worker] ERROR c.g.firebase.database.core.RunLoop - Uncaught exception in Firebase Database runloop (9.3.0). Please report to [email protected]
java.lang.ClassCastException: class java.util.HashMap cannot be cast to class java.lang.String (java.util.HashMap and java.lang.String are in module java.base of loader 'bootstrap')
at com.google.firebase.database.core.ServerValues.resolveDeferredValue(ServerValues.java:44)
at com.google.firebase.database.core.ServerValues.resolveDeferredValueSnapshot(ServerValues.java:80)
at com.google.firebase.database.core.Repo.setValue(Repo.java:376)
at com.google.firebase.database.DatabaseReference$1.run(DatabaseReference.java:305)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
- Linguagem predominante
- Java
- Estrelas
- 620
- Forks
- 306
- Merge médio
- 4d 7h
- PRs com merge (30d)
- 13
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um 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 firebase/firebase-admin-java
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
firebase/firebase-admin-java#1231 · 1 responsável ·
Mantenedores costumam responder em até 4 dias
-
[BUG] RemoteConfig unit tests fail in non-English (e.g., Korean) Locales due to Date ParsingTalvez livre de novo @rathovarun1032 assumiu há 199 dias e não há nenhum pull request aberto. Abertaapi: remoteconfig
firebase/firebase-admin-java#1196 · 1 comentário · 2 responsáveis ·
Mantenedores costumam responder em até 4 dias
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
firebase/firebase-admin-java#1192 · 3 comentários ·
Mantenedores costumam responder em até 4 dias
-
needs-triage type: feature request
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
firebase/firebase-admin-java#1149 · 1 comentário ·
Mantenedores costumam responder em até 4 dias
-
needs-triage type: feature request
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 45/100
firebase/firebase-admin-java#1142 · 2 comentários ·
Mantenedores costumam responder em até 4 dias
Todas as issues de firebase/firebase-admin-java
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
go 🏃 testing 🧪
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
valkey-io/valkey-glide#7239 ·
Mantenedores costumam responder em até 2 dias
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
github/copilot-sdk#2793 ·
Mantenedores costumam responder em até 1 dia