From a3979b8a14f6e67de406b29c3e0ad0c516c3bc54 Mon Sep 17 00:00:00 2001 From: "gregory.hayes" Date: Wed, 9 Dec 2020 20:42:33 +0000 Subject: Prune superfluous log and exception messages Large volume exception messages should not be repeated in log messages or in rethrown exceptions. Jira-Link: https://jira.onap.org/browse/POLICY-2885 Issue-ID: POLICY-2885 Signed-off-by: gregory.hayes Change-Id: I345531d3a7640cc5ad9dbfc367052b9c8cc19387 --- .../Apex2JsonEventConverter.java | 7 ++--- .../service/engine/main/ApexEventUnmarshaller.java | 3 +- .../engine/event/JsonEventConverterTest.java | 10 ++++--- .../engine/event/JsonEventHandlerForPojoTest.java | 17 ++++++----- .../service/engine/event/JsonEventHandlerTest.java | 33 +++++++++++++--------- 5 files changed, 39 insertions(+), 31 deletions(-) (limited to 'services/services-engine') diff --git a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/event/impl/jsonprotocolplugin/Apex2JsonEventConverter.java b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/event/impl/jsonprotocolplugin/Apex2JsonEventConverter.java index 459a2c4bf..e8e592b09 100644 --- a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/event/impl/jsonprotocolplugin/Apex2JsonEventConverter.java +++ b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/event/impl/jsonprotocolplugin/Apex2JsonEventConverter.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2019-2020 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -111,10 +111,7 @@ public class Apex2JsonEventConverter implements ApexEventProtocolConverter { eventList.add(jsonStringApexEvent(eventName, jsonEventString)); } } catch (final Exception e) { - final String errorString = "Failed to unmarshal JSON event: " + e.getMessage() + ", event=" - + jsonEventString; - LOGGER.warn(errorString, e); - throw new ApexEventException(errorString, e); + throw new ApexEventException("Failed to unmarshal JSON event, event=" + jsonEventString, e); } // Return the list of events we have unmarshalled diff --git a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexEventUnmarshaller.java b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexEventUnmarshaller.java index dc9854158..fd6ac4489 100644 --- a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexEventUnmarshaller.java +++ b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexEventUnmarshaller.java @@ -263,8 +263,7 @@ public class ApexEventUnmarshaller implements ApexEventReceiver, Runnable { break; } catch (ApexException e) { if (!iterator.hasNext()) { - final String errorMessage = "Error while converting event into an ApexEvent for " + name + ": " - + e.getMessage() + ", Event=" + event; + final String errorMessage = "Error while converting event into an ApexEvent for " + name; throw new ApexEventException(errorMessage, e); } } diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventConverterTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventConverterTest.java index ceadc4aae..a7d08bb55 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventConverterTest.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventConverterTest.java @@ -49,11 +49,13 @@ public class JsonEventConverterTest { assertThatThrownBy(() -> converter.toApexEvent(null, 1)) .hasMessage("error converting event \"1\" to a string"); assertThatThrownBy(() -> converter.toApexEvent(null, "[{\"aKey\": 1},{\"aKey\": 2}]")) - .hasMessage("Failed to unmarshal JSON event: event received without mandatory parameter \"name\" " - + "on configuration or on event, event=[{\"aKey\": 1},{\"aKey\": 2}]"); + .hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("event received without mandatory parameter \"name\" " + + "on configuration or on event"); assertThatThrownBy(() -> converter.toApexEvent(null, "[1,2,3]")) - .hasMessage("Failed to unmarshal JSON event: incoming event ([1,2,3]) is a JSON object array " - + "containing an invalid object 1.0, event=[1,2,3]"); + .hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("incoming event ([1,2,3]) is a JSON object array " + + "containing an invalid object 1.0"); assertThatThrownBy(() -> converter.fromApexEvent(null)) .hasMessage("event processing failed, Apex event is null"); assertThatThrownBy(() -> converter.fromApexEvent(new ApexEvent("Event", "0.0.1", "a.name.space", diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventHandlerForPojoTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventHandlerForPojoTest.java index de84acca1..c58cb085d 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventHandlerForPojoTest.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventHandlerForPojoTest.java @@ -217,15 +217,18 @@ public class JsonEventHandlerForPojoTest { logger.debug("input event\n" + apexEventJsonStringIn); assertThatThrownBy(() -> jsonEventConverter.toApexEvent("PojoEvent", apexEventJsonStringIn)) - .hasMessageContaining("Failed to unmarshal JSON event: error parsing PojoEvent:0.0.1 event from Json. " - + "Field BAD_POJO_PAR not found on POJO event definition."); + .hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("error parsing PojoEvent:0.0.1 event from Json. " + + "Field BAD_POJO_PAR not found on POJO event definition."); pars.setPojoField("POJO_PAR"); assertThatThrownBy(() -> jsonEventConverter.toApexEvent("PojoNoFieldEvent", apexEventJsonStringIn)) - .hasMessageContaining("Failed to unmarshal JSON event: error parsing PojoNoFieldEvent:0.0.1 " - + "event from Json, Field POJO_PAR not found, no fields defined on event."); + .hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("error parsing PojoNoFieldEvent:0.0.1 " + + "event from Json, Field POJO_PAR not found, no fields defined on event."); assertThatThrownBy(() -> jsonEventConverter.toApexEvent("PojoTooManyFieldsEvent", apexEventJsonStringIn)) - .hasMessageContaining("Failed to unmarshal JSON event: error parsing PojoTooManyFieldsEvent:0.0.1" - + " event from Json, Field POJO_PAR, one and only one field may be defined on a " - + "POJO event definition."); + .hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("error parsing PojoTooManyFieldsEvent:0.0.1" + + " event from Json, Field POJO_PAR, one and only one field may be defined on a " + + "POJO event definition."); } } diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventHandlerTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventHandlerTest.java index 241c92978..fdb886e10 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventHandlerTest.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/JsonEventHandlerTest.java @@ -144,18 +144,20 @@ public class JsonEventHandlerTest { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventNoName(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: event received without " - + "mandatory parameter \"name\" "); + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("event received without mandatory parameter \"name\" "); assertThatThrownBy(() -> { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventBadName(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: field \"name\" with value \"%%%%\" is invalid"); + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("field \"name\" with value \"%%%%\" is invalid"); assertThatThrownBy(() -> { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventNoExName(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: an event definition for an event named \"I_DONT_EXI"); + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("an event definition for an event named \"I_DONT_EXI"); String apexEventJsonStringIn1 = null; apexEventJsonStringIn1 = SupportJsonEventGenerator.jsonEventNoVersion(); ApexEvent event = jsonEventConverter.toApexEvent(null, apexEventJsonStringIn1).get(0); @@ -164,12 +166,14 @@ public class JsonEventHandlerTest { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventBadVersion(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: field \"version\" with value \"#####\" is invalid"); + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("field \"version\" with value \"#####\" is invalid"); assertThatThrownBy(() -> { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventNoExVersion(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: an event definition for an event named " + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("an event definition for an event named " + "\"BasicEvent\" with version \"1.2.3\" not found in Apex model"); apexEventJsonStringIn1 = SupportJsonEventGenerator.jsonEventNoNamespace(); event = jsonEventConverter.toApexEvent(null, apexEventJsonStringIn1).get(0); @@ -179,13 +183,14 @@ public class JsonEventHandlerTest { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventBadNamespace(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: " + "field \"nameSpace\" with value \"hello.&&&&\" " - + "is invalid"); + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("field \"nameSpace\" with value \"hello.&&&&\" is invalid"); assertThatThrownBy(() -> { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventNoExNamespace(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: namespace \"pie.in.the.sky\" " + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("namespace \"pie.in.the.sky\" " + "on event \"BasicEvent\" does not" + " match namespace \"org.onap.policy.apex.events\" " + "for that event in the Apex model"); apexEventJsonStringIn1 = SupportJsonEventGenerator.jsonEventNoSource(); @@ -196,7 +201,8 @@ public class JsonEventHandlerTest { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventBadSource(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: field \"source\" with value \"%!@**@!\" is invalid"); + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("field \"source\" with value \"%!@**@!\" is invalid"); apexEventJsonStringIn1 = SupportJsonEventGenerator.jsonEventNoTarget(); event = jsonEventConverter.toApexEvent(null, apexEventJsonStringIn1).get(0); assertEquals("target", event.getTarget()); @@ -205,13 +211,14 @@ public class JsonEventHandlerTest { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventBadTarget(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: field \"target\" with value \"KNIO(*S)A(S)D\" " - + "is invalid"); + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("field \"target\" with value \"KNIO(*S)A(S)D\" is invalid"); assertThatThrownBy(() -> { String apexEventJsonStringIn = null; apexEventJsonStringIn = SupportJsonEventGenerator.jsonEventMissingFields(); jsonEventConverter.toApexEvent(null, apexEventJsonStringIn); - }).hasMessageContaining("Failed to unmarshal JSON event: error parsing BasicEvent:0.0.1 " + }).hasMessageStartingWith("Failed to unmarshal JSON event") + .getCause().hasMessageStartingWith("error parsing BasicEvent:0.0.1 " + "event from Json. Field \"intPar\" is missing, but is mandatory."); apexEventJsonStringIn1 = SupportJsonEventGenerator.jsonEventNullFields(); event = jsonEventConverter.toApexEvent(null, apexEventJsonStringIn1).get(0); -- cgit 1.2.3-korg