You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sdap.apache.org by le...@apache.org on 2019/02/12 16:58:31 UTC

[incubator-sdap-mudrod] branch master updated: Connections, streams, files, and other classes that implement the Closeable interface or its super-interface, AutoCloseable, needs to be closed after use. (#36)

This is an automated email from the ASF dual-hosted git repository.

lewismc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-mudrod.git


The following commit(s) were added to refs/heads/master by this push:
     new bb68b8f  Connections, streams, files, and other classes that implement the Closeable interface or its super-interface, AutoCloseable, needs to be closed after use. (#36)
bb68b8f is described below

commit bb68b8f7f68274d497ba148815d583cf7055b36b
Author: Furkan KAMACI <fu...@gmail.com>
AuthorDate: Tue Feb 12 19:58:26 2019 +0300

    Connections, streams, files, and other classes that implement the Closeable interface or its super-interface, AutoCloseable, needs to be closed after use. (#36)
---
 .../org/apache/sdap/mudrod/driver/ESDriver.java    |  12 +-
 .../sdap/mudrod/ssearch/ranking/DataGenerator.java |  34 +++--
 .../mudrod/ssearch/ranking/TrainingImporter.java   |  24 ++--
 .../org/apache/sdap/mudrod/tools/InstallCert.java  |  33 ++---
 .../sdap/mudrod/weblog/pre/HistoryGenerator.java   | 139 ++++++++++-----------
 5 files changed, 121 insertions(+), 121 deletions(-)

diff --git a/core/src/main/java/org/apache/sdap/mudrod/driver/ESDriver.java b/core/src/main/java/org/apache/sdap/mudrod/driver/ESDriver.java
index 666629f..dc1b4c8 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/driver/ESDriver.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/driver/ESDriver.java
@@ -490,11 +490,13 @@ public class ESDriver implements Serializable {
 
     Client client = null;
 
-    if (hosts != null && port > 1) {  
-      TransportClient transportClient = new ESTransportClient(settings);
-      for (String host : hosts)
-        transportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
-      return transportClient;
+    if (hosts != null && port > 1) {
+      try (TransportClient transportClient = new ESTransportClient(settings)) {
+        for (String host : hosts) {
+          transportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
+        }
+        return transportClient;
+      }
     } else if (clusterName != null) {
       node = new Node(settings);
       client = node.client();
diff --git a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/DataGenerator.java b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/DataGenerator.java
index 4e43ec8..ed69b6b 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/DataGenerator.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/DataGenerator.java
@@ -91,16 +91,13 @@ public class DataGenerator {
 
         if (directoryListing != null) {
           for (File child : directoryListing) {
-            CSVReader csvReader = new CSVReader(new FileReader(child));
-            List<String[]> list = csvReader.readAll();
-
-            // Store into 2D array by transforming array list to normal array
-            dataArr = new String[list.size()][];
-            dataArr = list.toArray(dataArr);
-
-            calculateVec(dataArr);
-
-            csvReader.close();
+            try (CSVReader csvReader = new CSVReader(new FileReader(child))) {
+              List<String[]> list = csvReader.readAll();
+              // Store into 2D array by transforming array list to normal array
+              dataArr = new String[list.size()][];
+              dataArr = list.toArray(dataArr);
+              calculateVec(dataArr);
+            }
           }
           storeHead(dataArr); // Store the header
         }
@@ -109,17 +106,16 @@ public class DataGenerator {
         File file = new File(sourceDir);
 
         if (file != null) {
-          CSVReader csvReader = new CSVReader(new FileReader(file));
-          List<String[]> list = csvReader.readAll();
-
-          // Store into 2D array by transforming array list to normal array
-          dataArr = new String[list.size()][];
-          dataArr = list.toArray(dataArr);
+          try (CSVReader csvReader = new CSVReader(new FileReader(file))) {
+            List<String[]> list = csvReader.readAll();
 
-          storeHead(dataArr); // Store the header
-          calculateVec(dataArr);
+            // Store into 2D array by transforming array list to normal array
+            dataArr = new String[list.size()][];
+            dataArr = list.toArray(dataArr);
 
-          csvReader.close();
+            storeHead(dataArr); // Store the header
+            calculateVec(dataArr);
+          }
         }
       }
     } catch (FileNotFoundException e) {
diff --git a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/TrainingImporter.java b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/TrainingImporter.java
index ff55c85..12fdecb 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/TrainingImporter.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/TrainingImporter.java
@@ -71,20 +71,20 @@ public class TrainingImporter extends MudrodAbstract {
 
     File[] files = new File(dataFolder).listFiles();
     for (File file : files) {
-      BufferedReader br = new BufferedReader(new FileReader(file.getAbsolutePath()));
-      br.readLine();
-      String line = br.readLine();
-      while (line != null) {
-        String[] list = line.split(",");
-        String query = file.getName().replace(".csv", "");
-        if (list.length > 0) {
-          IndexRequest ir = new IndexRequest(props.getProperty(MudrodConstants.ES_INDEX_NAME), "trainingranking")
-              .source(jsonBuilder().startObject().field("query", query).field("dataID", list[0]).field("label", list[list.length - 1]).endObject());
-          es.getBulkProcessor().add(ir);
+      try (BufferedReader br = new BufferedReader(new FileReader(file.getAbsolutePath()))) {
+        br.readLine();
+        String line = br.readLine();
+        while (line != null) {
+          String[] list = line.split(",");
+          String query = file.getName().replace(".csv", "");
+          if (list.length > 0) {
+            IndexRequest ir = new IndexRequest(props.getProperty(MudrodConstants.ES_INDEX_NAME), "trainingranking")
+                .source(jsonBuilder().startObject().field("query", query).field("dataID", list[0]).field("label", list[list.length - 1]).endObject());
+            es.getBulkProcessor().add(ir);
+          }
+          line = br.readLine();
         }
-        line = br.readLine();
       }
-      br.close();
     }
     es.destroyBulkProcessor();
   }
diff --git a/core/src/main/java/org/apache/sdap/mudrod/tools/InstallCert.java b/core/src/main/java/org/apache/sdap/mudrod/tools/InstallCert.java
index 304454b..370697c 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/tools/InstallCert.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/tools/InstallCert.java
@@ -78,11 +78,13 @@ public class InstallCert {
         file = new File(dir, "cacerts");
         }
     }
+
     System.out.println("Loading KeyStore " + file + "...");
-    InputStream in = new FileInputStream(file);
-    KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
-    ks.load(in, passphrase);
-    in.close();
+    KeyStore ks;
+    try (InputStream in = new FileInputStream(file)) {
+        ks = KeyStore.getInstance(KeyStore.getDefaultType());
+        ks.load(in, passphrase);
+    }
 
     SSLContext context = SSLContext.getInstance("TLS");
     TrustManagerFactory tmf =
@@ -94,17 +96,18 @@ public class InstallCert {
     SSLSocketFactory factory = context.getSocketFactory();
 
     System.out.println("Opening connection to " + host + ":" + port + "...");
-    SSLSocket socket = (SSLSocket)factory.createSocket(host, port);
-    socket.setSoTimeout(10000);
-    try {
-        System.out.println("Starting SSL handshake...");
-        socket.startHandshake();
-        socket.close();
-        System.out.println();
-        System.out.println("No errors, certificate is already trusted");
-    } catch (SSLException e) {
-        System.out.println();
-        e.printStackTrace(System.out);
+    try (SSLSocket socket = (SSLSocket) factory.createSocket(host, port)) {
+        socket.setSoTimeout(10000);
+        try {
+            System.out.println("Starting SSL handshake...");
+            socket.startHandshake();
+            socket.close();
+            System.out.println();
+            System.out.println("No errors, certificate is already trusted");
+        } catch (SSLException e) {
+            System.out.println();
+            e.printStackTrace(System.out);
+        }
     }
 
     X509Certificate[] chain = tm.chain;
diff --git a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/HistoryGenerator.java b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/HistoryGenerator.java
index 415f377..e120765 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/HistoryGenerator.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/HistoryGenerator.java
@@ -68,86 +68,85 @@ public class HistoryGenerator extends LogAbstract {
       file.createNewFile();
 
       FileWriter fw = new FileWriter(file.getAbsoluteFile());
-      BufferedWriter bw = new BufferedWriter(fw);
-      bw.write("Num" + ",");
+      try (BufferedWriter bw = new BufferedWriter(fw)) {
+        bw.write("Num" + ",");
 
-      // step 1: write first row of csv
-      List<String> logIndexList = es.getIndexListWithPrefix(
-              props.getProperty(MudrodConstants.LOG_INDEX));
+        // step 1: write first row of csv
+        List<String> logIndexList = es.getIndexListWithPrefix(
+            props.getProperty(MudrodConstants.LOG_INDEX));
 
-      String[] logIndices = logIndexList.toArray(new String[0]);
-      String[] statictypeArray = new String[] { this.sessionStats };
-      int docCount = es.getDocCount(logIndices, statictypeArray);
+        String[] logIndices = logIndexList.toArray(new String[0]);
+        String[] statictypeArray = new String[]{this.sessionStats};
+        int docCount = es.getDocCount(logIndices, statictypeArray);
 
-      LOG.info("{}: {}", this.sessionStats, docCount);
+        LOG.info("{}: {}", this.sessionStats, docCount);
 
-      if (docCount==0) { 
-        bw.close(); 
-        file.delete();
-        return;
-      }
-
-      SearchResponse sr = es.getClient()
-              .prepareSearch(logIndices)
-              .setTypes(statictypeArray)
-              .setQuery(QueryBuilders.matchAllQuery())
-              .setSize(0)
-              .addAggregation(AggregationBuilders.terms("IPs")
-              .field("IP")
-              .size(docCount))
-              .execute()
-              .actionGet();
-      Terms ips = sr.getAggregations().get("IPs");
-      List<String> ipList = new ArrayList<>();
-      for (Terms.Bucket entry : ips.getBuckets()) {
-        // filter
-        if (entry.getDocCount() > Integer.parseInt(props.getProperty(MudrodConstants.QUERY_MIN))) {
-          // out less active users/ips
-          ipList.add(entry.getKey().toString());
+        if (docCount == 0) {
+          bw.close();
+          file.delete();
+          return;
         }
-      }
-      bw.write(String.join(",", ipList) + "\n");
-
-      // step 2: step the rest rows of csv
-      SearchRequestBuilder sr2Builder = es.getClient()
-              .prepareSearch(logIndices)
-              .setTypes(statictypeArray)
-              .setQuery(QueryBuilders.matchAllQuery())
-              .setSize(0)
-              .addAggregation(AggregationBuilders.terms("KeywordAgg")
-                      .field("keywords")
-                      .size(docCount)
-                      .subAggregation(AggregationBuilders.terms("IPAgg")
-                              .field("IP")
-                              .size(docCount)));
-
-      SearchResponse sr2 = sr2Builder.execute().actionGet();
-      Terms keywords = sr2.getAggregations().get("KeywordAgg");
-
-      for (Terms.Bucket keyword : keywords.getBuckets()) {
-
-        Map<String, Integer> ipMap = new HashMap<>();
-        Terms ipAgg = keyword.getAggregations().get("IPAgg");
-
-        int distinctUser = ipAgg.getBuckets().size();
-        if (distinctUser >= Integer.parseInt(props.getProperty(MudrodConstants.QUERY_MIN))) {
-          bw.write(keyword.getKey() + ",");
-          for (Terms.Bucket IP : ipAgg.getBuckets()) {
-
-            ipMap.put(IP.getKey().toString(), 1);
+
+        SearchResponse sr = es.getClient()
+            .prepareSearch(logIndices)
+            .setTypes(statictypeArray)
+            .setQuery(QueryBuilders.matchAllQuery())
+            .setSize(0)
+            .addAggregation(AggregationBuilders.terms("IPs")
+                .field("IP")
+                .size(docCount))
+            .execute()
+            .actionGet();
+        Terms ips = sr.getAggregations().get("IPs");
+        List<String> ipList = new ArrayList<>();
+        for (Terms.Bucket entry : ips.getBuckets()) {
+          // filter
+          if (entry.getDocCount() > Integer.parseInt(props.getProperty(MudrodConstants.QUERY_MIN))) {
+            // out less active users/ips
+            ipList.add(entry.getKey().toString());
           }
-          for (String anIpList : ipList) {
-            if (ipMap.containsKey(anIpList)) {
-              bw.write(ipMap.get(anIpList) + ",");
-            } else {
-              bw.write("0,");
+        }
+        bw.write(String.join(",", ipList) + "\n");
+
+        // step 2: step the rest rows of csv
+        SearchRequestBuilder sr2Builder = es.getClient()
+            .prepareSearch(logIndices)
+            .setTypes(statictypeArray)
+            .setQuery(QueryBuilders.matchAllQuery())
+            .setSize(0)
+            .addAggregation(AggregationBuilders.terms("KeywordAgg")
+                .field("keywords")
+                .size(docCount)
+                .subAggregation(AggregationBuilders.terms("IPAgg")
+                    .field("IP")
+                    .size(docCount)));
+
+        SearchResponse sr2 = sr2Builder.execute().actionGet();
+        Terms keywords = sr2.getAggregations().get("KeywordAgg");
+
+        for (Terms.Bucket keyword : keywords.getBuckets()) {
+
+          Map<String, Integer> ipMap = new HashMap<>();
+          Terms ipAgg = keyword.getAggregations().get("IPAgg");
+
+          int distinctUser = ipAgg.getBuckets().size();
+          if (distinctUser >= Integer.parseInt(props.getProperty(MudrodConstants.QUERY_MIN))) {
+            bw.write(keyword.getKey() + ",");
+            for (Terms.Bucket IP : ipAgg.getBuckets()) {
+
+              ipMap.put(IP.getKey().toString(), 1);
             }
+            for (String anIpList : ipList) {
+              if (ipMap.containsKey(anIpList)) {
+                bw.write(ipMap.get(anIpList) + ",");
+              } else {
+                bw.write("0,");
+              }
+            }
+            bw.write("\n");
           }
-          bw.write("\n");
         }
       }
-
-      bw.close();
       fw.close();
     } catch (IOException e) {
       e.printStackTrace();