Skip to content

Commit 727d028

Browse files
authored
Merge pull request #20 from IBM/serialize-nulls-only-response
Only include nulls in serialization when processing API responses
2 parents c5a5ef5 + 71deb19 commit 727d028

File tree

6 files changed

+9
-10
lines changed

6 files changed

+9
-10
lines changed

pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,8 @@
246246
<artifactId>maven-compiler-plugin</artifactId>
247247
<version>${compiler-plugin-version}</version>
248248
<configuration>
249-
<source>1.8</source>
250-
<target>1.8</target>
249+
<source>1.7</source>
250+
<target>1.7</target>
251251
</configuration>
252252
</plugin>
253253
<plugin>

src/main/java/com/ibm/cloud/sdk/core/http/RequestBuilder.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
*/
1313
package com.ibm.cloud.sdk.core.http;
1414

15+
import com.google.gson.Gson;
1516
import com.google.gson.JsonObject;
1617
import com.ibm.cloud.sdk.core.service.BaseService;
1718
import com.ibm.cloud.sdk.core.util.GsonSingleton;
@@ -333,12 +334,11 @@ public RequestBuilder bodyContent(InputStream stream, String contentType) {
333334
public RequestBuilder bodyContent(String contentType, Object jsonContent, Object jsonPatchContent,
334335
InputStream nonJsonContent) {
335336
if (contentType != null) {
337+
Gson requestGson = GsonSingleton.getGson().newBuilder().serializeNulls().create();
336338
if (BaseService.isJsonMimeType(contentType)) {
337-
this.bodyContent(
338-
GsonSingleton.getGson().toJsonTree(jsonContent).getAsJsonObject().toString(), contentType);
339+
this.bodyContent(requestGson.toJsonTree(jsonContent).getAsJsonObject().toString(), contentType);
339340
} else if (BaseService.isJsonPatchMimeType(contentType)) {
340-
this.bodyContent(
341-
GsonSingleton.getGson().toJsonTree(jsonPatchContent).getAsJsonObject().toString(), contentType);
341+
this.bodyContent(requestGson.toJsonTree(jsonPatchContent).getAsJsonObject().toString(), contentType);
342342
} else {
343343
this.bodyContent(nonJsonContent, contentType);
344344
}

src/main/java/com/ibm/cloud/sdk/core/http/ServiceCall.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public interface ServiceCall<T> {
4444
*
4545
* @param callback the callback
4646
*/
47-
void enqueue(ServiceCallback<? super T> callback);
47+
void enqueue(ServiceCallback<T> callback);
4848

4949
/**
5050
* Reactive request using the RxJava 2 library. See https://github.com/ReactiveX/RxJava. In addition, the wrapped

src/main/java/com/ibm/cloud/sdk/core/service/BaseService.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ public com.ibm.cloud.sdk.core.http.Response<T> execute() {
490490
}
491491

492492
@Override
493-
public void enqueue(final ServiceCallback<? super T> callback) {
493+
public void enqueue(final ServiceCallback<T> callback) {
494494
call.enqueue(new Callback() {
495495
@Override
496496
public void onFailure(Call call, IOException e) {

src/main/java/com/ibm/cloud/sdk/core/service/security/IamTokenManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ private boolean isRefreshTokenExpired() {
182182
* @param request the request for the IAM API
183183
* @return object containing requested IAM token information
184184
*/
185-
private IamToken callIamApi(Request request) {
185+
private IamToken callIamApi(final Request request) {
186186
final IamToken[] returnToken = new IamToken[1];
187187

188188
Thread iamApiCall = new Thread(new Runnable() {

src/main/java/com/ibm/cloud/sdk/core/util/GsonSingleton.java

-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ private static Gson createGson(Boolean prettyPrint) {
4545
builder.setPrettyPrinting();
4646
}
4747
builder.disableHtmlEscaping();
48-
builder.serializeNulls();
4948
return builder.create();
5049
}
5150

0 commit comments

Comments
 (0)