Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

BatchResponseContent fails when processing "error": null in batch responses

Aberta
#2,386 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
java
Domínio
api

Direção de pesquisa

Comece em BatchResponseContent.java, em getResponseFromJsonObject, por volta da linha 199, e reproduza a resposta em lote contendo um campo de erro null explícito. Verifique se o valor da resposta continua sendo processado com sucesso e se IllegalStateException não ocorre mais.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

status:waiting-for-triage type:bug
Description

The SDK throws IllegalStateException while processing batch responses when the body.error field is explicitly present but set to null.

The following exception is thrown:

java.lang.IllegalStateException: Not a JSON Object: null
    at com.google.gson.JsonElement.getAsJsonObject(JsonElement.java:91)
    at com.microsoft.graph.core.content.BatchResponseContent.getResponseFromJsonObject(BatchResponseContent.java:199)
Expected behavior

The SDK should ignore error: null and correctly process value.

How to reproduce

Create a batch request with a countIf operation in Microsoft Graph java SDK.

public void countIf(String driveId, String itemId, String criteria, String range) throws IOException {
  // Construct the CountIfPostRequestBody

CountIfPostRequestBody countIfPostRequestBody = new CountIfPostRequestBody();

countIfPostRequestBody.setCriteria(new UntypedString(criteria));
countIfPostRequestBody.setRange(new UntypedObject(Map.of("Address", new UntypedString(range))));

// Call the Graph API

RequestInformation postRequestInformation = graphServiceClient
        .drives()
        .byDriveId(driveId)
        .items()
        .byDriveItemId(itemId)
        .workbook()
        .functions()
        .countIf()
        .toPostRequestInformation(countIfPostRequestBody);


BatchRequestContent batchRequestContent = new BatchRequestContent(graphServiceClient);


String requestId = batchRequestContent.addBatchRequestStep(postRequestInformation);

BatchResponseContent batchResponseContent =
        graphServiceClient.getBatchRequestBuilder().post(batchRequestContent, null);

Response response = batchResponseContent.getResponseById(requestId);

}

Microsoft Graph API returns a valid batch response like this:

{
    "responses": [
        {
            "id": "countIfRequest",
            "status": 200,
            "body": {
                "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.workbookFunctionResult",
                "error": null,
                "value": 174
            }
        }
    ]
}
SDK Version

6.39.0

Latest version known to work for scenario above?

No response

Known Workarounds

No response

Debug output
Click to expand log ```
</details>


### Configuration

_No response_

### Other information

_No response_
Linguagem predominante
Java
Estrelas
444
Forks
154
Merge médio
18h 28min
PRs com merge (30d)
4

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de microsoftgraph/msgraph-sdk-java

Todas as issues de microsoftgraph/msgraph-sdk-java

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.