microsoftgraph / microsoftgraph/msgraph-sdk-java
Calling toPatchInformation prior to calling patch causes patch to silently fail
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 444
- Forks
- 154
- Merge moyen
- 18 h 28 min
- PR mergées (30 j)
- 4
Description
Describe the bug
When calling a patch operation on an Application request, calling toPatchInformation causes the .patch(app) to not work. If true, then this probably needs either a doc update or a fix.
This does not work, but no error is thrown and the logs are clean it seems:
// DOES NOT WORK
val trequest = graphClient.applications().byApplicationId(oid)
val emptyApp = Application()
emptyApp.setNotes(s"Updated via code. ${java.time.ZonedDateTime.now()}")
trequest.toPatchRequestInformation(emptyApp)
trequest.patch(emptyApp)
but this works and the application registration is changed
// WORKS
val trequest = graphClient.applications().byApplicationId(oid)
val emptyApp = Application()
emptyApp.setNotes(s"Updated via code. ${java.time.ZonedDateTime.now()}")
//trequest.toPatchRequestInformation(emptyApp)
trequest.patch(emptyApp)
This may be related to something not idempotent and there is some hidden state somewhere.
OTEL logging suggest that the only difference in calling is that the following is called twice when including the toPatchRequestInformation prior to patch. patch also calls toPatchRequestInformation as well. However,
it looks like creating RequestInformation is idempotent...hmm...
// this is the only difference in the trace which is expected since setContentFromParsable is called when toPatchRequestInformation is called.
[otel.javaagent 2025-02-09 16:38:49:625 -0500] [main] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'setContentFromParsable' : ace455a22586ba518b85e4a1b307630d b731da65e1939a46 INTERNAL [tracer: com.microsoft.kiota:] AttributesMap{data={thread.id=1, com.microsoft.kiota.request.type=com.microsoft.graph.models.Application, thread.name=main}, capacity=128, totalAddedValues=3}
[otel.javaagent 2025-02-09 16:38:49:625 -0500] [main] INFO io.opentelemetry.exporter.logging.LoggingSpanExporter - 'setContentFromParsable' : 9e931b04f0305f0ef5df1bb3a8b59f78 30a5455e58f3fb17 INTERNAL [tracer: com.microsoft.kiota:] AttributesMap{data={thread.id=1, com.microsoft.kiota.request.type=com.microsoft.graph.models.Application, thread.name=main}, capacity=128, totalAddedValues=3}
Expected behavior
The patch works even if toPatchRequestInformation is called prior to calling patch.
How to reproduce
SDK Version
6.x, latest
Latest version known to work for scenario above?
No response
Known Workarounds
None
Debug output
Click to expand log
```</details>
### Configuration
_No response_
### Other information
_No response_
Guide de contribution
Ouvrir 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.
Piste de recherche
Commencez par les points d’entrée des requêtes de Application toPatchRequestInformation et patch, puis comparez leurs appels répétés à setContentFromParsable ainsi que tout état de requête qu’ils partagent. Reproduisez les deux séquences de l’issue et ajoutez un test de régression montrant que l’appel préalable à toPatchRequestInformation n’empêche pas patch de mettre à jour l’Application.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- api
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100