From a56d3929f2387252525577fb36f9e03933064b8f Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Fri, 3 Apr 2020 09:44:26 -0400 Subject: Address sonar issues in common Addressed the following sonar issues: - missing assertion in junit test case - disable sonars about setAccessible() as it's required for jackson emulation - sleep in junit - don't use wild-cards (e.g., "*") with java.util Pattern - use re2j instead of java.util Pattern - use String methods (e.g., startsWith()) - duplicate method bodies - duplicate code in Coder classes - string concatenation in logger calls - UTF-8 encoding - return primitive instead of boxed primitive - add assertion to tests - renamed support methods from doTestXxx to verifyXxx - cognitive complexity - use AtomicRef instead of volatile - use specific Functionals (e.g., IntConsumer) - function always returns the same value - serializable vs transient Issue-ID: POLICY-2305 Change-Id: I08eb7aa495a80bdc1d26827ba17a7946c83b9828 Signed-off-by: Jim Hahn --- .../java/org/onap/policy/common/gson/internal/Adapter.java | 12 +++++++++--- .../onap/policy/common/gson/internal/FieldDeserializer.java | 12 +++++++++--- .../onap/policy/common/gson/internal/FieldSerializer.java | 7 +++++-- .../onap/policy/common/gson/MapDoubleAdapterFactoryTest.java | 7 ++++--- 4 files changed, 27 insertions(+), 11 deletions(-) (limited to 'gson') diff --git a/gson/src/main/java/org/onap/policy/common/gson/internal/Adapter.java b/gson/src/main/java/org/onap/policy/common/gson/internal/Adapter.java index 174b4912..39ec6bd0 100644 --- a/gson/src/main/java/org/onap/policy/common/gson/internal/Adapter.java +++ b/gson/src/main/java/org/onap/policy/common/gson/internal/Adapter.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -83,7 +83,10 @@ public class Adapter { this.gson = gson; this.fullName = getQualifiedName(field); - field.setAccessible(true); + /* + * Turning off sonar, as this is required for emulation of "jackson". + */ + field.setAccessible(true); // NOSONAR } /** @@ -100,7 +103,10 @@ public class Adapter { this.gson = gson; this.fullName = getQualifiedName(accessor); - accessor.setAccessible(true); + /* + * Turning off sonar, as this is required for emulation of "jackson". + */ + accessor.setAccessible(true); // NOSONAR } /** diff --git a/gson/src/main/java/org/onap/policy/common/gson/internal/FieldDeserializer.java b/gson/src/main/java/org/onap/policy/common/gson/internal/FieldDeserializer.java index 14a432d1..123b0195 100644 --- a/gson/src/main/java/org/onap/policy/common/gson/internal/FieldDeserializer.java +++ b/gson/src/main/java/org/onap/policy/common/gson/internal/FieldDeserializer.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,10 @@ public class FieldDeserializer extends Adapter implements Deserializer { this.field = field; - field.setAccessible(true); + /* + * Turning off sonar, as this is required for emulation of "jackson". + */ + field.setAccessible(true); // NOSONAR } @Override @@ -62,7 +65,10 @@ public class FieldDeserializer extends Adapter implements Deserializer { Object value = fromJsonTree(jsonEl); try { - field.set(target, value); + /* + * Turning off sonar, as this is required for emulation of "jackson". + */ + field.set(target, value); // NOSONAR } catch (IllegalArgumentException | IllegalAccessException e) { throw new JsonParseException(makeError(SET_ERR), e); diff --git a/gson/src/main/java/org/onap/policy/common/gson/internal/FieldSerializer.java b/gson/src/main/java/org/onap/policy/common/gson/internal/FieldSerializer.java index 1c9d8b37..348ef5a0 100644 --- a/gson/src/main/java/org/onap/policy/common/gson/internal/FieldSerializer.java +++ b/gson/src/main/java/org/onap/policy/common/gson/internal/FieldSerializer.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,7 +50,10 @@ public class FieldSerializer extends Adapter implements Serializer { this.field = field; - field.setAccessible(true); + /* + * Turning off sonar, as this is required for emulation of "jackson". + */ + field.setAccessible(true); // NOSONAR } @Override diff --git a/gson/src/test/java/org/onap/policy/common/gson/MapDoubleAdapterFactoryTest.java b/gson/src/test/java/org/onap/policy/common/gson/MapDoubleAdapterFactoryTest.java index 79631c5c..30d99466 100644 --- a/gson/src/test/java/org/onap/policy/common/gson/MapDoubleAdapterFactoryTest.java +++ b/gson/src/test/java/org/onap/policy/common/gson/MapDoubleAdapterFactoryTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ package org.onap.policy.common.gson; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -104,8 +105,8 @@ public class MapDoubleAdapterFactoryTest { map = gson.fromJson(json, MyDoubleMap.class); // everything should still be Double - check by simply accessing - map.data.get("plainDouble"); - map.data.get("doubleAsInt"); + assertNotNull(map.data.get("plainDouble")); + assertNotNull(map.data.get("doubleAsInt")); } @Test -- cgit 1.2.3-korg