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>
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);