diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d36d68c3..f873646d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -37,16 +37,16 @@ jobs: run: echo "RELEASE_VERSION=${TAG#v}" >> $GITHUB_ENV env: TAG: ${{ github.event.release.tag_name }} - + - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Apache Maven Central uses: actions/setup-java@v5 with: - distribution: 'adopt' + distribution: "adopt" java-version: 21 - server-id: 'ossrh' + server-id: "ossrh" server-username: PUBLISHER_USERNAME server-password: PUBLISHER_PASSWORD gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml index 08e027c2..25d110f7 100644 --- a/.github/workflows/test-pr.yml +++ b/.github/workflows/test-pr.yml @@ -9,7 +9,6 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref }} cancel-in-progress: true - env: BW_ACCOUNT_ID: ${{ secrets.BW_ACCOUNT_ID }} BW_PASSWORD: ${{ secrets.BW_PASSWORD }} @@ -43,7 +42,7 @@ jobs: fail-fast: false steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up JDK uses: actions/setup-java@v5 diff --git a/.github/workflows/test-smoke.yml b/.github/workflows/test-smoke.yml index fc3700e6..2020b593 100644 --- a/.github/workflows/test-smoke.yml +++ b/.github/workflows/test-smoke.yml @@ -41,7 +41,7 @@ jobs: MANTECA_APPLICATION_ID: ${{ secrets.MANTECA_APPLICATION_ID }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up JDK uses: actions/setup-java@v5 diff --git a/custom_templates/libraries/okhttp-gson/auth/OAuthOkHttpClient.mustache b/custom_templates/libraries/okhttp-gson/auth/OAuthOkHttpClient.mustache index facbc974..ce34d4f3 100644 --- a/custom_templates/libraries/okhttp-gson/auth/OAuthOkHttpClient.mustache +++ b/custom_templates/libraries/okhttp-gson/auth/OAuthOkHttpClient.mustache @@ -8,6 +8,7 @@ import okhttp3.MediaType; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; +import okhttp3.ResponseBody; import org.apache.oltu.oauth2.client.HttpClient; import org.apache.oltu.oauth2.client.request.OAuthClientRequest; @@ -56,9 +57,12 @@ public class OAuthOkHttpClient implements HttpClient { try { Response response = client.newCall(requestBuilder.build()).execute(); + ResponseBody responseBody = response.body(); + // A degraded auth response (e.g. rate limited) can have no body or no Content-Type + MediaType responseMediaType = responseBody != null ? responseBody.contentType() : null; return OAuthClientResponseFactory.createCustomResponse( - response.body().string(), - response.body().contentType().toString(), + responseBody != null ? responseBody.string() : "", + responseMediaType != null ? responseMediaType.toString() : null, response.code(), response.headers().toMultimap(), responseClass); diff --git a/src/main/java/com/bandwidth/sdk/auth/OAuthOkHttpClient.java b/src/main/java/com/bandwidth/sdk/auth/OAuthOkHttpClient.java index ae19b927..6bba17fa 100644 --- a/src/main/java/com/bandwidth/sdk/auth/OAuthOkHttpClient.java +++ b/src/main/java/com/bandwidth/sdk/auth/OAuthOkHttpClient.java @@ -18,6 +18,7 @@ import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; +import okhttp3.ResponseBody; import org.apache.oltu.oauth2.client.HttpClient; import org.apache.oltu.oauth2.client.request.OAuthClientRequest; @@ -66,9 +67,12 @@ public T execute(OAuthClientRequest request, Map try { Response response = client.newCall(requestBuilder.build()).execute(); + ResponseBody responseBody = response.body(); + // A degraded auth response (e.g. rate limited) can have no body or no Content-Type + MediaType responseMediaType = responseBody != null ? responseBody.contentType() : null; return OAuthClientResponseFactory.createCustomResponse( - response.body().string(), - response.body().contentType().toString(), + responseBody != null ? responseBody.string() : "", + responseMediaType != null ? responseMediaType.toString() : null, response.code(), response.headers().toMultimap(), responseClass);