From da5dfcd1a354807d13849c7f4ead535ccfa722fa Mon Sep 17 00:00:00 2001 From: avigaffa Date: Sun, 31 Dec 2017 15:07:39 +0200 Subject: Fixing sonar Exception Handling Change-Id: I04eb047973a3f5c07dd9dc410cb13af974e8ded1 Issue-ID: SDC-810 Signed-off-by: avigaffa Signed-off-by: vempo --- .../openecomp/core/utilities/CommonMethods.java | 284 +-------------------- .../openecomp/core/utilities/file/FileUtils.java | 20 +- .../core/utilities/CommonMethodsTest.java | 92 ++++++- 3 files changed, 106 insertions(+), 290 deletions(-) (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib') diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/CommonMethods.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/CommonMethods.java index 5a17f887d9..7f207c59a9 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/CommonMethods.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/CommonMethods.java @@ -16,21 +16,12 @@ package org.openecomp.core.utilities; -import org.apache.commons.codec.binary.Base64; import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.PrintWriter; -import java.io.Serializable; -import java.io.StringWriter; import java.lang.reflect.Array; -import java.net.URL; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -49,7 +40,6 @@ public class CommonMethods { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; - private static final char[] hexArray = "0123456789ABCDEF".toCharArray(); /** * Private default constructor to prevent instantiation of the class objects. @@ -57,108 +47,6 @@ public class CommonMethods { private CommonMethods() { } - /** - * Serializes an object instance into byte array. - * - * @param object An instance to be serialized. - * @return Java array of bytes. - * @see #deserializeObject(byte[]) #deserializeObject(byte[]) - */ - public static byte[] serializeObject(Serializable object) { - ByteArrayOutputStream byteArray = new ByteArrayOutputStream(2048); - try { - ObjectOutputStream ds = new ObjectOutputStream(byteArray); - ds.writeObject(object); - ds.close(); - } catch (IOException exception) { - throw new RuntimeException(exception); - } - - return byteArray.toByteArray(); - } // serializeObject - - /** - * Deserializes an object instance. - * - * @param bytes Java array of bytes. - * @return Deserialized instance of an object. - * @see #serializeObject(Serializable) #serializeObject(Serializable) - */ - public static Serializable deserializeObject(byte[] bytes) { - Serializable obj = null; - try { - ObjectInputStream stream = new ObjectInputStream(new ByteArrayInputStream(bytes)); - obj = (Serializable) stream.readObject(); - stream.close(); - } catch (IOException | ClassNotFoundException exception) { - throw new RuntimeException(exception); - } - - return obj; - } // deserializeObject - - /** - * Encodes binary byte stream to ASCII format. - * - * @param binary An Java array of bytes in binary format. - * @return An Java array of bytes encoded in ASCII format. - * @see #decode(byte[]) #decode(byte[]) - */ - public static byte[] encode(byte[] binary) { - return Base64.encodeBase64(binary); - } - - /** - * Decodes ASCII byte stream into binary format. - * - * @param ascii An Java array of bytes in ASCII format. - * @return An Java array of bytes encoded in binary format. - * @see #encode(byte[]) #encode(byte[]) - */ - public static byte[] decode(byte[] ascii) { - return Base64.decodeBase64(ascii); - } - - /** - * Checks whether the given Object is empty. - * - * @param obj Object to be checked. - * @return true - if the Object is null, false otherwise. - */ - public static boolean isEmpty(Object obj) { - return obj == null; - } - - /** - * Checks whether the given Object is empty. - * - * @param byteArray Object to be checked. - * @return true - if the Object is null, false otherwise. - */ - public static boolean isEmpty(byte[] byteArray) { - return byteArray == null || byteArray.length == 0; - } - - /** - * Checks whether the given String is empty. - * - * @param str String object to be checked. - * @return true - if the String is null or empty, false - otherwise. - */ - public static boolean isEmpty(String str) { - return str == null || str.length() == 0; - } - - /** - * Checks whether the given Java array is empty. - * - * @param array Java array to be checked. - * @return true - if the array is null or empty, false - otherwise. - */ - public static boolean isEmpty(Object[] array) { - return array == null || array.length == 0; - } - /** * Checks whether the given collection is empty. * @@ -169,49 +57,6 @@ public class CommonMethods { return collection == null || collection.isEmpty(); } - /** - * Checks whether the given map is empty. - * - * @param map A map to be checked. - * @return true - if the map is null or empty, false - otherwise. - */ - public static boolean isEmpty(Map map) { - return map == null || map.isEmpty(); - } - - /** - * Converts the array with Long elements to the array with long (primitive type). - * - * @param array input array with Long elements - * @return array with the same elements converted to the long type (primitive) - */ - public static long[] toPrimitive(Long[] array) { - if (array == null) { - return null; - } - - long[] result = new long[array.length]; - for (int i = 0; i < array.length; i++) { - result[i] = array[i] != null ? array[i] : 0L; - } - return result; - } - - /** - * Converts a collection to Java array. - * - * @param Java type of the collection element. - * @param col Collection to be converted to array - * @param type Java type of collection/array element - * @return An Java array of collection elements, or empty array if collection is null or empty. - */ - @SuppressWarnings("unchecked") - public static T[] toArray(Collection col, Class type) { - int length = isEmpty(col) ? 0 : col.size(); - T[] array = (T[]) Array.newInstance(type, length); - return col != null ? col.toArray(array) : array; - } - /** * Gets an universally unique identifier (UUID). * @@ -233,7 +78,7 @@ public class CommonMethods { long nextByte = value & 0xF000000000000000L; value <<= 4; boolean isNegative = nextByte < 0; - nextByte = rightShift(nextByte, 60); + nextByte = nextByte >>> 60; if (isNegative) { nextByte |= 0x08; @@ -243,10 +88,6 @@ public class CommonMethods { } } - private static long rightShift(long lng, int num) { - return lng >>> num; - } - /** * Concatenates two Java arrays. The method allocates a new array and copies * all elements to it or returns one of input arrays if another one is @@ -264,9 +105,9 @@ public class CommonMethods { public static T[] concat(T[] left, T[] right) { T[] res; - if (isEmpty(left)) { + if (ArrayUtils.isEmpty(left)) { res = right; - } else if (isEmpty(right)) { + } else if (ArrayUtils.isEmpty(right)) { res = left; } else { res = (T[]) Array.newInstance(left[0].getClass(), left.length + right.length); @@ -277,36 +118,6 @@ public class CommonMethods { return res; } // concat - /** - * Casts an object to the class or interface represented by the specified - * Class object. The method logic is similar to Java method - * Class.cast(Object) with the only difference that unlike Java's - * version the type name of the current object instance is specified in the - * error message if casting fails to simplify error tracking. - * - * @param the type parameter - * @param the type parameter - * @param b1 An object instance to be casted to the specified Java type. - * @param cls Target Java type. - * @return Object instance safely casted to the requested Java type. - * @throws ClassCastException In case which is the given object is not instance of the specified - * Java type. - */ - @SuppressWarnings("unchecked") - public static D cast(B b1, Class cls) { - D d1 = null; - if (b1 != null) { - if (!cls.isInstance(b1)) { - throw new ClassCastException(String - .format("Failed to cast from '%s' to '%s'", b1.getClass().getName(), cls.getName())); - } else { - d1 = (D) b1; - } - } - - return d1; - } // cast - /** * New instance object. * @@ -328,7 +139,7 @@ public class CommonMethods { @SuppressWarnings("unchecked") public static T newInstance(String classname, Class cls) { - if (isEmpty(classname)) { + if (StringUtils.isEmpty(classname)) { throw new IllegalArgumentException(); } @@ -367,33 +178,6 @@ public class CommonMethods { } } - /** - * Gets resources path. - * - * @param resourceName the resource name - * @return the resources path - */ - public static String getResourcesPath(String resourceName) { - URL resourceUrl = CommonMethods.class.getClassLoader().getResource(resourceName); - return resourceUrl != null ? resourceUrl.getPath() - .substring(0, resourceUrl.getPath().lastIndexOf("/") + 1) : null; - } - - /** - * Gets stack trace. - * - * @param throwable the throwable - * @return the stack trace - */ - public static String getStackTrace(Throwable throwable) { - if (null == throwable) { - return ""; - } - StringWriter sw = new StringWriter(); - throwable.printStackTrace(new PrintWriter(sw)); - return sw.toString(); - } - /** * Print stack trace string. * @@ -409,25 +193,6 @@ public class CommonMethods { return sb.toString(); } - /** - * Is equal object boolean. - * - * @param obj1 the obj 1 - * @param obj2 the obj 2 - * @return the boolean - */ - public static boolean isEqualObject(Object obj1, Object obj2) { - boolean isEqualValue = false; - if (obj1 == null && obj2 == null) { - isEqualValue = true; - } - - if (!isEqualValue && obj1 != null && obj2 != null && obj1.equals(obj2)) { - isEqualValue = true; - } - return isEqualValue; - } - /** * Converts array of strings to comma-separated string. * @@ -445,9 +210,7 @@ public class CommonMethods { * @return the string */ public static String collectionToCommaSeparatedString(Collection elementCollection) { - List list = new ArrayList<>(); - list.addAll(elementCollection); - return listToSeparatedString(list, ','); + return String.join(",", elementCollection); } /** @@ -458,7 +221,7 @@ public class CommonMethods { * @return the string */ public static String arrayToSeparatedString(String[] arr, char separator) { - return listToSeparatedString(Arrays.asList(arr), separator); + return String.join(Character.toString(separator), arr); } /** @@ -469,19 +232,7 @@ public class CommonMethods { * @return the string */ public static String listToSeparatedString(List list, char separator) { - String res = null; - if (null != list) { - StringBuilder sb = new StringBuilder(); - int sz = list.size(); - for (int i = 0; i < sz; i++) { - if (i > 0) { - sb.append(separator); - } - sb.append(list.get(i)); - } - res = sb.toString(); - } - return res; + return String.join(Character.toString(separator), list); } /** @@ -505,23 +256,6 @@ public class CommonMethods { return sb.toString(); } - /** - * Bytes to hex string. - * - * @param bytes the bytes - * @return the string - */ - public static String bytesToHex(byte[] bytes) { - char[] hexChars = new char[bytes.length * 2]; - for (int j = 0; j < bytes.length; j++) { - int var = bytes[j] & 0xFF; - int x1 = j << 1; - hexChars[x1] = hexArray[var >>> 4]; - hexChars[x1 + 1] = hexArray[var & 0x0F]; - } - return new String(hexChars); - } - /** * To single element set set. * diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java index 786def961a..e70ad923a2 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/main/java/org/openecomp/core/utilities/file/FileUtils.java @@ -1,21 +1,17 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ +/* + * Copyright © 2016-2017 European Support Limited + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * ============LICENSE_END========================================================= */ package org.openecomp.core.utilities.file; @@ -189,7 +185,7 @@ public class FileUtils { return IOUtils.toByteArray(input); } catch (IOException exception) { throw new RuntimeException( - "error will convertion input stream to byte array:" + exception.getMessage()); + "error while converting input stream to byte array", exception); } } @@ -203,7 +199,7 @@ public class FileUtils { if (!fileName.contains(".")) { return fileName; } - return fileName.substring(0, fileName.lastIndexOf(".")); + return fileName.substring(0, fileName.lastIndexOf('.')); } public static String getFileExtension(String filename) { @@ -264,7 +260,7 @@ public class FileUtils { */ YML("yml"); - private String displayName; + private final String displayName; FileExtension(String displayName) { this.displayName = displayName; diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/CommonMethodsTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/CommonMethodsTest.java index c675f8927f..ff3584a8a1 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/CommonMethodsTest.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/CommonMethodsTest.java @@ -18,14 +18,100 @@ package org.openecomp.core.utilities; import org.testng.annotations.Test; +import java.util.Arrays; +import java.util.Collections; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; public class CommonMethodsTest { + + private static final String[] ARRAY = { "A", "B", "C" }; + @Test - public void testPrintStackTrace() throws Exception { - assertTrue(CommonMethods.printStackTrace().contains("org.openecomp.core.utilities" + + public void testPrintStackTrace() { + + String trace = CommonMethods.printStackTrace(); + assertTrue(trace.contains("org.openecomp.core.utilities" + ".CommonMethods.printStackTrace(CommonMethods.java:")); - assertTrue(CommonMethods.printStackTrace().contains("org.openecomp.core.utilities" + + assertTrue(trace.contains("org.openecomp.core.utilities" + ".CommonMethodsTest.testPrintStackTrace(CommonMethodsTest.java")); } + + @Test + public void testArrayToCommaSeparatedString() { + assertEquals(CommonMethods.arrayToCommaSeparatedString(ARRAY), "A,B,C"); + } + + @Test + public void testArrayToCommaSeparatedStringEmpty() { + assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[0]), ""); + } + + @Test + public void testArrayToCommaSeparatedStringNulls() { + assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[] { null, null }), "null,null"); + } + + @Test + public void testArrayToCommaSeparatedStringEmptyStrings() { + assertEquals(CommonMethods.arrayToCommaSeparatedString(new String[] { "", "" }), ","); + } + + @Test(expectedExceptions = NullPointerException.class) + public void testArrayToCommaSeparatedStringNull() { + CommonMethods.arrayToCommaSeparatedString(null); + } + + @Test + public void testArrayToSeparatedString() { + assertEquals(CommonMethods.arrayToSeparatedString(ARRAY, '/'),"A/B/C"); + } + + @Test + public void testArrayToSeparatedStringEmpty() { + assertEquals(CommonMethods.arrayToSeparatedString(new String[0], '/'),""); + } + + @Test + public void testArrayToSeparatedStringNulls() { + assertEquals(CommonMethods.arrayToSeparatedString(new String[] {null, null}, '/'),"null/null"); + } + + @Test + public void testArrayToSeparatedStringEmptyStrings() { + assertEquals(CommonMethods.arrayToSeparatedString(new String[] {"", ""}, '/'),"/"); + } + + @Test(expectedExceptions = NullPointerException.class) + public void testArrayToSeparatedStringNull() { + CommonMethods.arrayToSeparatedString(null, '/'); + } + + @Test + public void testCollectionToCommaSeparatedString() { + assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList(ARRAY)), "A,B,C"); + } + + @Test + public void testCollectionToCommaSeparatedStringNulls() { + assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList(null, null)), "null,null"); + } + + @Test + public void testCollectionToCommaSeparatedStringEmptyStrings() { + assertEquals(CommonMethods.collectionToCommaSeparatedString(Arrays.asList("", "")), ","); + } + + @Test + public void testCollectionToCommaSeparatedStringEmtpy() { + assertEquals(CommonMethods.collectionToCommaSeparatedString(Collections.emptySet()), ""); + } + + @Test(expectedExceptions = NullPointerException.class) + public void testCollectionToCommaSeparatedStringNull() { + assertNull(CommonMethods.collectionToCommaSeparatedString(null)); + } + } -- cgit 1.2.3-korg