Skip to content

Commit 5a03f1a

Browse files
authored
Merge pull request #1975 from microsoft/copilot/fix-1848
fix: Ensure 304 response code does not throw exceptions
2 parents 81eafc6 + f440dcb commit 5a03f1a

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

components/http/okHttp/src/main/java/com/microsoft/kiota/http/OkHttpRequestAdapter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,9 @@ private void setResponseType(final Object result, final Span span) {
344344
}
345345

346346
private void closeResponse(boolean closeResponse, Response response) {
347-
if (closeResponse && response.code() != 204) {
347+
if (closeResponse
348+
&& response.code() != 204
349+
&& (response.code() < 300 || response.code() > 399)) {
348350
response.close();
349351
}
350352
}
@@ -614,7 +616,7 @@ private void closeResponse(boolean closeResponse, Response response) {
614616

615617
private boolean shouldReturnNull(final Response response) {
616618
final int statusCode = response.code();
617-
return statusCode == 204;
619+
return statusCode == 204 || (statusCode > 299 && statusCode < 400);
618620
}
619621

620622
/**

components/http/okHttp/src/test/java/com/microsoft/kiota/http/OkHttpRequestAdapterTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ void sendStreamReturnsUsableStream(int statusCode) throws Exception {
120120
}
121121

122122
@ParameterizedTest
123-
@ValueSource(ints = {200, 201, 202, 203, 204})
123+
@ValueSource(ints = {200, 201, 202, 203, 204, 304})
124124
void sendStreamReturnsNullOnNoContent(int statusCode) throws Exception {
125125
final var authenticationProviderMock = mock(AuthenticationProvider.class);
126126
authenticationProviderMock.authenticateRequest(
@@ -149,7 +149,7 @@ void sendStreamReturnsNullOnNoContent(int statusCode) throws Exception {
149149
}
150150

151151
@ParameterizedTest
152-
@ValueSource(ints = {200, 201, 202, 203, 204, 205})
152+
@ValueSource(ints = {200, 201, 202, 203, 204, 205, 304})
153153
void sendReturnsNullOnNoContent(int statusCode) throws Exception {
154154
final var authenticationProviderMock = mock(AuthenticationProvider.class);
155155
authenticationProviderMock.authenticateRequest(

0 commit comments

Comments
 (0)