Enable spotbugs and fix spotbugs warns 24/116724/3
authorClaudio David Gasparini <claudio.gasparini@pantheon.tech>
Mon, 11 Jan 2021 15:42:30 +0000 (16:42 +0100)
committerClaudio David Gasparini <claudio.gasparini@pantheon.tech>
Tue, 12 Jan 2021 09:41:45 +0000 (10:41 +0100)
Issue-ID: CPS-159
Signed-off-by: Claudio David Gasparini <claudio.gasparini@pantheon.tech>
Change-Id: Iee572fd740689a172ca599123b0751b5e909223a

cps-parent/pom.xml
cps-rest/src/main/java/org/onap/cps/rest/utils/MultipartFileUtil.java
cps-ri/src/main/java/org/onap/cps/spi/impl/CpsModulePersistenceServiceImpl.java
cps-service/src/main/java/org/onap/cps/spi/model/ModuleReference.java
cps-service/src/main/java/org/onap/cps/utils/YangUtils.java
cps-service/src/main/java/org/onap/cps/yang/YangTextSchemaSourceSetBuilder.java

index d3470df..08b1883 100644 (file)
                         <!-- Reports all bugs (other values are medium and max) -->
                         <threshold>Low</threshold>
                         <!-- Build doesn't fail if problems are found -->
-                        <failOnError>false</failOnError>
+                        <failOnError>true</failOnError>
                         <!-- References the excluded rules -->
                         <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile>
                         <!-- Produces XML report -->
index 0c527a5..c53d1a4 100644 (file)
 
 package org.onap.cps.rest.utils;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import static org.opendaylight.yangtools.yang.common.YangConstants.RFC6020_YANG_FILE_EXTENSION;
 
 import com.google.common.collect.ImmutableMap;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -47,7 +49,7 @@ public class MultipartFileUtil {
     }
 
     private static String extractYangResourceName(final MultipartFile multipartFile) {
-        final String fileName = multipartFile.getOriginalFilename();
+        final String fileName = checkNotNull(multipartFile.getOriginalFilename(), "Missing filename.");
         if (!fileName.endsWith(RFC6020_YANG_FILE_EXTENSION)) {
             throw new ModelValidationException("Unsupported file type.",
                 String.format("Filename %s does not end with '%s'", fileName, RFC6020_YANG_FILE_EXTENSION));
@@ -57,7 +59,7 @@ public class MultipartFileUtil {
 
     private static String extractYangResourceContent(final MultipartFile multipartFile) {
         try {
-            return new String(multipartFile.getBytes());
+            return new String(multipartFile.getBytes(), StandardCharsets.UTF_8);
         } catch (final IOException e) {
             throw new CpsException("Cannot read the resource file.", e.getMessage(), e);
         }
index 23a3843..0832930 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.cps.spi.impl;
 
 import com.google.common.collect.ImmutableSet;
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -76,7 +77,7 @@ public class CpsModulePersistenceServiceImpl implements CpsModulePersistenceServ
                 final YangResource yangResource = new YangResource();
                 yangResource.setName(entry.getKey());
                 yangResource.setContent(entry.getValue());
-                yangResource.setChecksum(DigestUtils.md5DigestAsHex(entry.getValue().getBytes()));
+                yangResource.setChecksum(DigestUtils.md5DigestAsHex(entry.getValue().getBytes(StandardCharsets.UTF_8)));
                 return yangResource;
             })
             .collect(Collectors.toMap(
index aa198a9..8989e6c 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.onap.cps.spi.model;
 
+import java.io.Serializable;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -29,7 +30,9 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class ModuleReference {
+public class ModuleReference implements Serializable {
+
+    private static final long serialVersionUID = 1L;
 
     private String name;
     private String namespace;
index 8743b7d..8077ed7 100644 (file)
@@ -103,7 +103,7 @@ public class YangUtils {
         } else if (normalizedNode instanceof LeafSetNode) {
             inspectLeafList(currentFragment, (LeafSetNode) normalizedNode);
         } else {
-            log.warn("Cannot normalize " + normalizedNode.getClass());
+            log.warn("Cannot normalize {}", normalizedNode.getClass());
         }
     }
 
index ae0f2cd..b1462cd 100644 (file)
 
 package org.onap.cps.yang;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableMap;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -140,8 +143,9 @@ public final class YangTextSchemaSourceSetBuilder {
             .collect(Collectors.toList());
     }
 
-    private static YangTextSchemaSource toYangTextSchemaSource(final String sourceName, final String source) {
-        final Map.Entry<String, String> sourceNameParsed = YangNames.parseFilename(sourceName);
+    private static YangTextSchemaSource toYangTextSchemaSource(final String sourceName,
+            final String source) {
+        final Map.Entry<String, String> sourceNameParsed = checkNotNull(YangNames.parseFilename(sourceName));
         final RevisionSourceIdentifier revisionSourceIdentifier = RevisionSourceIdentifier
             .create(sourceNameParsed.getKey(), Revision.ofNullable(sourceNameParsed.getValue()));
 
@@ -154,7 +158,7 @@ public final class YangTextSchemaSourceSetBuilder {
 
             @Override
             public InputStream openStream() {
-                return new ByteArrayInputStream(source.getBytes());
+                return new ByteArrayInputStream(source.getBytes(StandardCharsets.UTF_8));
             }
         };
     }