diff --git a/dxa-framework/dxa-common-api/src/main/java/com/sdl/dxa/DxaSpringInitialization.java b/dxa-framework/dxa-common-api/src/main/java/com/sdl/dxa/DxaSpringInitialization.java index dc410c863..48aec7ff9 100644 --- a/dxa-framework/dxa-common-api/src/main/java/com/sdl/dxa/DxaSpringInitialization.java +++ b/dxa-framework/dxa-common-api/src/main/java/com/sdl/dxa/DxaSpringInitialization.java @@ -2,10 +2,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; -import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.ser.FilterProvider; import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; import com.fasterxml.jackson.databind.util.StdDateFormat; @@ -178,7 +175,7 @@ public ObjectMapper objectMapper() { objectMapper.setFilterProvider(jsonFilterProvider()); objectMapper.setDateFormat(new StdDateFormat()); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); - objectMapper.setPropertyNamingStrategy(new PropertyNamingStrategy.UpperCamelCaseStrategy()); + objectMapper.setPropertyNamingStrategy(PropertyNamingStrategies.UPPER_CAMEL_CASE); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_ABSENT); diff --git a/dxa-framework/dxa-tridion-provider/src/main/java/com/sdl/dxa/tridion/graphql/GraphQLProvider.java b/dxa-framework/dxa-tridion-provider/src/main/java/com/sdl/dxa/tridion/graphql/GraphQLProvider.java index 5aae7a007..ed9192075 100644 --- a/dxa-framework/dxa-tridion-provider/src/main/java/com/sdl/dxa/tridion/graphql/GraphQLProvider.java +++ b/dxa-framework/dxa-tridion-provider/src/main/java/com/sdl/dxa/tridion/graphql/GraphQLProvider.java @@ -68,6 +68,7 @@ private ApiClient getPcaClient() { // To determine this, DXA first tries the regular Page and if it doesn't exist, it appends /index.html and tries again. // TODO: The above should be handled by GraphQL (See CRQ-11703) public T loadPage(Class type, PageRequestDto pageRequest, ContentType contentType) throws ContentProviderException { + T result = null; try { JsonNode pageNode = getPcaClient().getPageModelData( GraphQLUtils.convertUriToGraphQLContentNamespace(pageRequest.getUriType()), @@ -79,7 +80,7 @@ public T loadPage(Class type, PageRequestDto pageRequest, ContentType con ContentIncludeMode.INCLUDE_DATA_AND_RENDER, null ); - T result = mapToType(type, pageNode); + result = mapToType(type, pageNode); // result may be 'null' starting from Jackson 2.18.3, so checking for this condition if (result == null) { String pathToDefaults = normalizePathToDefaults(pageRequest.getPath(), true); @@ -95,10 +96,6 @@ public T loadPage(Class type, PageRequestDto pageRequest, ContentType con null); result = mapToType(type, pageNode); } - if (log.isTraceEnabled()) { - log.trace("Loaded '{}' for pageRequest '{}'", result, pageRequest); - } - return result; } catch (IOException e) { // Keeping this for users who may override the Jackson version and utilize a version prior to 2.18.3 @@ -115,11 +112,7 @@ public T loadPage(Class type, PageRequestDto pageRequest, ContentType con PageInclusion.valueOf(pageRequest.getIncludePages().toString()), ContentIncludeMode.INCLUDE_DATA_AND_RENDER, null); - T result = mapToType(type, node); - if (log.isTraceEnabled()) { - log.trace("Loaded '{}' for pageRequest '{}'", result, pageRequest); - } - return result; + result = mapToType(type, node); } catch (IOException ex) { if (log.isTraceEnabled()) { @@ -128,6 +121,13 @@ public T loadPage(Class type, PageRequestDto pageRequest, ContentType con throw new PageNotFoundException("Unable to load page, by request " + pageRequest, ex); } } + if (log.isTraceEnabled()) { + log.trace("Loaded '{}' for pageRequest '{}'", result, pageRequest); + } + if (result == null) { + throw new PageNotFoundException("Unable to load page (retrieved 'null'), by request " + pageRequest); + } + return result; } public T loadPage(Class type, String namespace, int publicationId, int pageId, ContentType contentType, DataModelType modelType, PageInclusion pageInclusion, ContextData contextData) throws ContentProviderException {