From 696887254c2752bb06517474947d0228610afa01 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 9 Apr 2024 18:47:51 -0500 Subject: [PATCH] Use disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) on all JsonUtils.toObject calls --- .../SavedReportToReportMetaDataAdapter.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/savedreports/SavedReportToReportMetaDataAdapter.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/savedreports/SavedReportToReportMetaDataAdapter.java index bdf8e966..3fc4282c 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/savedreports/SavedReportToReportMetaDataAdapter.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/processes/implementations/savedreports/SavedReportToReportMetaDataAdapter.java @@ -26,7 +26,9 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.function.Consumer; import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; import com.kingsrook.qqq.backend.core.context.QContext; import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.exceptions.QUserFacingException; @@ -68,6 +70,7 @@ public class SavedReportToReportMetaDataAdapter { private static final QLogger LOG = QLogger.getLogger(SavedReportToReportMetaDataAdapter.class); + private static Consumer jsonMapperCustomizer = om -> om.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); /******************************************************************************* @@ -92,7 +95,7 @@ public class SavedReportToReportMetaDataAdapter QTableMetaData table = qInstance.getTable(savedReport.getTableName()); dataSource.setSourceTable(savedReport.getTableName()); - dataSource.setQueryFilter(JsonUtils.toObject(savedReport.getQueryFilterJson(), QQueryFilter.class)); + dataSource.setQueryFilter(JsonUtils.toObject(savedReport.getQueryFilterJson(), QQueryFilter.class, jsonMapperCustomizer)); ////////////////////////// // set up the main view // @@ -110,7 +113,7 @@ public class SavedReportToReportMetaDataAdapter // map them to a list of QReportField objects // // also keep track of what joinTables we find that we need to select // /////////////////////////////////////////////////////////////////////////////////////////////// - ReportColumns columnsObject = JsonUtils.toObject(savedReport.getColumnsJson(), ReportColumns.class, om -> om.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)); + ReportColumns columnsObject = JsonUtils.toObject(savedReport.getColumnsJson(), ReportColumns.class, jsonMapperCustomizer); List reportColumns = new ArrayList<>(); view.setColumns(reportColumns); @@ -182,7 +185,7 @@ public class SavedReportToReportMetaDataAdapter ///////////////////////////////////////// if(StringUtils.hasContent(savedReport.getPivotTableJson())) { - PivotTableDefinition pivotTableDefinition = JsonUtils.toObject(savedReport.getPivotTableJson(), PivotTableDefinition.class); + PivotTableDefinition pivotTableDefinition = JsonUtils.toObject(savedReport.getPivotTableJson(), PivotTableDefinition.class, jsonMapperCustomizer); QReportView pivotView = new QReportView(); reportMetaData.getViews().add(pivotView); @@ -274,7 +277,7 @@ public class SavedReportToReportMetaDataAdapter //////////////////////////////////// // todo turn on when implementing // //////////////////////////////////// - // reportMetaData.setInputFields(JsonUtils.toObject(savedReport.getInputFieldsJson(), new TypeReference<>() {})); + // reportMetaData.setInputFields(JsonUtils.toObject(savedReport.getInputFieldsJson(), new TypeReference<>() {}), objectMapperConsumer); throw (new IllegalStateException("Input Fields are not yet implemented")); }