Skip to content

Commit

Permalink
fix: Fix Java NPE in case of null body (box/box-codegen#645) (#149)
Browse files Browse the repository at this point in the history
  • Loading branch information
box-sdk-build authored Jan 16, 2025
1 parent d3ce60c commit 25dee92
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .codegen.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{ "engineHash": "b2c3124", "specHash": "0a89b2b", "version": "0.3.0" }
{ "engineHash": "458e7a8", "specHash": "0a89b2b", "version": "0.3.0" }
15 changes: 9 additions & 6 deletions src/main/java/com/box/sdkgen/box/errors/BoxAPIError.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.box.sdkgen.box.errors;

import static java.lang.String.format;

import com.box.sdkgen.networking.fetchresponse.FetchResponse;
import com.fasterxml.jackson.databind.JsonNode;
import java.time.LocalDateTime;
import java.util.Optional;
import okhttp3.Request;

public class BoxAPIError extends BoxSDKError {
Expand All @@ -21,12 +21,15 @@ public BoxAPIError(String message, RequestInfo requestInfo, ResponseInfo respons
public static BoxAPIError fromAPICall(Request request, FetchResponse fetchResponse) {
RequestInfo requestInfo = RequestInfo.fromRequest(request);
ResponseInfo responseInfo = ResponseInfo.fromResponse(fetchResponse);

String requestId =
responseInfo.getBody().get("request_id") != null
? responseInfo.getBody().get("request_id").asText()
: "";
Optional.ofNullable(responseInfo.getBody())
.map(body -> body.get("request_id"))
.map(JsonNode::asText)
.orElse("");

return new BoxAPIError.BoxAPIErrorBuilder(
format("Status %d; Request ID: %s", responseInfo.getStatusCode(), requestId),
String.format("Status %d; Request ID: %s", responseInfo.getStatusCode(), requestId),
requestInfo,
responseInfo)
.timestamp(LocalDateTime.now().toString())
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/com/box/sdkgen/box/errors/ResponseInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,9 @@ public ResponseInfo build() {

public static ResponseInfo fromResponse(FetchResponse fetchResponse) {
JsonNode body = fetchResponse.getData();
if (body == null) {
return new ResponseInfo(fetchResponse.getStatus(), fetchResponse.getHeaders());
}
String rawBody = body.asText();

return new ResponseInfo.ResponseInfoBuilder(
Expand Down

0 comments on commit 25dee92

Please sign in to comment.