Fix DailyLatencyReport vulnerabilities 29/68829/1
authorRonan Keogh <ronan.keogh@ericsson.com>
Tue, 25 Sep 2018 10:44:55 +0000 (11:44 +0100)
committerRonan Keogh <ronan.keogh@ericsson.com>
Tue, 25 Sep 2018 10:44:59 +0000 (11:44 +0100)
Change-Id: Ib7f794e11fd4b3cf9d60134a57688bdd930829d9
Signed-off-by: Ronan Keogh <ronan.keogh@ericsson.com>
Issue-ID: DMAAP-775

datarouter-prov/src/main/java/org/onap/dmaap/datarouter/reports/DailyLatencyReport.java

index f848733..f1e0f7c 100644 (file)
@@ -37,7 +37,6 @@ import java.util.HashMap;
 import java.util.List;\r
 import java.util.Map;\r
 import java.util.TreeSet;\r
-\r
 import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
 \r
 /**\r
@@ -65,42 +64,54 @@ import org.onap.dmaap.datarouter.provisioning.utils.DB;
  * @version $Id: DailyLatencyReport.java,v 1.2 2013/11/06 16:23:54 eby Exp $\r
  */\r
 public class DailyLatencyReport extends ReportBase {\r
+\r
     private static final String SELECT_SQL =\r
         "select EVENT_TIME, TYPE, PUBLISH_ID, FEED_FILEID, FEEDID, CONTENT_LENGTH from LOG_RECORDS" +\r
-        " where EVENT_TIME >= ? and EVENT_TIME <= ?";\r
+            " where EVENT_TIME >= ? and EVENT_TIME <= ?";\r
 \r
     private class Job {\r
+\r
         public long pubtime = 0;\r
         public long clen = 0;\r
         public List<Long> deltime = new ArrayList<Long>();\r
+\r
         public long minLatency() {\r
             long n = deltime.isEmpty() ? 0 : Long.MAX_VALUE;\r
-            for (Long l : deltime)\r
-                n = Math.min(n, l-pubtime);\r
+            for (Long l : deltime) {\r
+                n = Math.min(n, l - pubtime);\r
+            }\r
             return n;\r
         }\r
+\r
         public long maxLatency() {\r
             long n = 0;\r
-            for (Long l : deltime)\r
-                n = Math.max(n, l-pubtime);\r
+            for (Long l : deltime) {\r
+                n = Math.max(n, l - pubtime);\r
+            }\r
             return n;\r
         }\r
+\r
         public long totalLatency() {\r
             long n = 0;\r
-            for (Long l : deltime)\r
-                n += (l-pubtime);\r
+            for (Long l : deltime) {\r
+                n += (l - pubtime);\r
+            }\r
             return n;\r
         }\r
     }\r
+\r
     private class Counters {\r
+\r
         public final String date;\r
         public final int feedid;\r
         public final Map<String, Job> jobs;\r
+\r
         public Counters(String d, int fid) {\r
             date = d;\r
             feedid = fid;\r
-            jobs = new HashMap<String, Job>();\r
+            jobs = new HashMap<>();\r
         }\r
+\r
         public void addEvent(long etime, String type, String id, String fid, long clen) {\r
             Job j = jobs.get(id);\r
             if (j == null) {\r
@@ -114,48 +125,52 @@ public class DailyLatencyReport extends ReportBase {
                 j.deltime.add(etime);\r
             }\r
         }\r
+\r
         @Override\r
         public String toString() {\r
             long minsize = Long.MAX_VALUE, maxsize = 0, avgsize = 0;\r
-            long minl    = Long.MAX_VALUE, maxl    = 0;\r
-            long fanout  = 0, totall = 0, totaln = 0;\r
+            long minl = Long.MAX_VALUE, maxl = 0;\r
+            long fanout = 0, totall = 0, totaln = 0;\r
             for (Job j : jobs.values()) {\r
                 minsize = Math.min(minsize, j.clen);\r
                 maxsize = Math.max(maxsize, j.clen);\r
                 avgsize += j.clen;\r
-                minl    = Math.min(minl, j.minLatency());\r
-                maxl    = Math.max(maxl, j.maxLatency());\r
-                totall  += j.totalLatency();\r
-                totaln  += j.deltime.size();\r
-                fanout  += j.deltime.size();\r
+                minl = Math.min(minl, j.minLatency());\r
+                maxl = Math.max(maxl, j.maxLatency());\r
+                totall += j.totalLatency();\r
+                totaln += j.deltime.size();\r
+                fanout += j.deltime.size();\r
             }\r
             if (jobs.size() > 0) {\r
                 avgsize /= jobs.size();\r
-                fanout  /= jobs.size();\r
+                fanout /= jobs.size();\r
             }\r
             long avgl = (totaln > 0) ? (totall / totaln) : 0;\r
-            return date + "," + feedid + "," + minsize + "," + maxsize + "," + avgsize + "," + minl + "," + maxl + "," + avgl + "," + fanout;\r
+            return date + "," + feedid + "," + minsize + "," + maxsize + "," + avgsize + "," + minl + "," + maxl + ","\r
+                + avgl + "," + fanout;\r
         }\r
     }\r
+\r
     private long getPstart(String t) {\r
-        if (t.indexOf('.') >= 0)\r
+        if (t.indexOf('.') >= 0) {\r
             t = t.substring(0, t.indexOf('.'));\r
+        }\r
         return Long.parseLong(t);\r
     }\r
 \r
     @Override\r
     public void run() {\r
-        Map<String, Counters> map = new HashMap<String, Counters>();\r
+        Map<String, Counters> map = new HashMap<>();\r
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");\r
         long start = System.currentTimeMillis();\r
         try {\r
             DB db = new DB();\r
             @SuppressWarnings("resource")\r
             Connection conn = db.getConnection();\r
-            try(PreparedStatement ps = conn.prepareStatement(SELECT_SQL)) {\r
+            try (PreparedStatement ps = conn.prepareStatement(SELECT_SQL)) {\r
                 ps.setLong(1, from);\r
                 ps.setLong(2, to);\r
-                try(ResultSet rs = ps.executeQuery()) {\r
+                try (ResultSet rs = ps.executeQuery()) {\r
                     while (rs.next()) {\r
                         String id = rs.getString("PUBLISH_ID");\r
                         int feed = rs.getInt("FEEDID");\r
@@ -177,17 +192,18 @@ public class DailyLatencyReport extends ReportBase {
                 db.release(conn);\r
             }\r
         } catch (SQLException e) {\r
-            e.printStackTrace();\r
+            logger.error("SQLException: " + e.getMessage());\r
         }\r
-        logger.debug("Query time: " + (System.currentTimeMillis()-start) + " ms");\r
-        try (PrintWriter os = new PrintWriter(outfile)){\r
+        logger.debug("Query time: " + (System.currentTimeMillis() - start) + " ms");\r
+        try (PrintWriter os = new PrintWriter(outfile)) {\r
             os.println("date,feedid,minsize,maxsize,avgsize,minlat,maxlat,avglat,fanout");\r
-            for (String key : new TreeSet<String>(map.keySet())) {\r
+            for (String key : new TreeSet<>(map.keySet())) {\r
                 Counters c = map.get(key);\r
                 os.println(c.toString());\r
             }\r
         } catch (FileNotFoundException e) {\r
-            System.err.println("File cannot be written: "+outfile);\r
+            System.err.println("File cannot be written: " + outfile);\r
+            logger.error("FileNotFoundException: " + e.getMessage());\r
         }\r
     }\r
 }\r