firebase / firebase/firebase-admin-java
NullPointerException when using cloud messaging
- Langage dominant
- Java
- Étoiles
- 620
- Forks
- 305
- Merge moyen
- 3 h 23 min
- PR mergées (30 j)
- 1
Description
* Library version: 9.4.3
* Firebase Product: cloud messaging
When we are sending messages in bulk to devices using device specific tokens, we randomly get the error below:
```
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:595)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:574)
at com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:91)
at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:67)
at businessLayer.Messaging.sendPush(Messaging.java:777)
...
```
We are using the method sendEachAsync:
`BatchResponse firebaseResponse = FirebaseMessaging.getInstance(firebaseApp).sendEachAsync(firebaseMessages, pushDryRun).get();`
Besides the error showing up randomly when we are sending the messages, it seems that in older version of the library (<= 9.3.0), that the error is:
```
java.util.concurrent.ExecutionException: com.google.firebase.messaging.FirebaseMessagingException: com.google.firebase.messaging.FirebaseMessaging
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:594)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:573)
at com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:91)
at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:67)
at businessLayer.Messaging.sendPush(Messaging.java:777)
...
```
The problem for us is that it seems that this error started showing up randomly last month.
At least some messages seem to be sent, because we have info that users are seeing and clicking on the notifications.
So, it seems that we are correctly calling the procedure.
Any help would be welcomed.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par l’appel à sendEachAsync et à businessLayer.Messaging.sendPush dans Messaging.java:777, puis reproduisez un envoi groupé vers des tokens spécifiques aux appareils avec la version 9.4.3 de la bibliothèque. Suivez la raison pour laquelle le résultat asynchrone devient une NullPointerException au lieu de l’ancienne FirebaseMessagingException, et vérifiez que les envois groupés signalent une erreur exploitable tandis que les notifications réussies restent inchangées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- firebase, java
- Domaine
- backend, cloud
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100