Make Scheduler's client more Gennerics-tolerant 90/94290/1
authorIttay Stern <ittay.stern@att.com>
Mon, 26 Aug 2019 15:46:32 +0000 (18:46 +0300)
committerIttay Stern <ittay.stern@att.com>
Mon, 26 Aug 2019 15:46:32 +0000 (18:46 +0300)
1. Use t.getClass, instead of new TypeReference<T>. The latter it not
   behaving as expected on run-time.

2. Store the raw response in restObject.setRaw (just because we can)

Change-Id: Ic7087af18ded212447cb67334a9e373759f4da1f
Issue-ID: VID-378
Signed-off-by: Ittay Stern <ittay.stern@att.com>
vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java

index 7878c2f..001a8ae 100644 (file)
@@ -98,12 +98,13 @@ public class SchedulerRestInterface implements SchedulerRestInterfaceIfc {
             status = response.getStatus();
             restObject.setStatusCode(status);
             rawData = response.getBody();
+            restObject.setRaw(rawData);
             if (status == 200) {
                 if (t instanceof String) {
                     restObject.set((T)rawData);
                 }
                 else {
-                    restObject.set(JACKSON_OBJECT_MAPPER.readValue(rawData, new TypeReference<T>() {}));
+                    restObject.set(JACKSON_OBJECT_MAPPER.readValue(rawData, (Class<T>)t.getClass()));
                 }
                 logger.debug(EELFLoggerDelegate.debugLogger, "<== " + methodName + SUCCESSFUL_API_MESSAGE);
                 logger.info(EELFLoggerDelegate.errorLogger, "<== " + methodName + SUCCESSFUL_API_MESSAGE);