You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2019/03/02 15:20:58 UTC

[bookkeeper] branch master updated: Use automatic resource management to close streams

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

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 73f36a2  Use automatic resource management to close streams
73f36a2 is described below

commit 73f36a2272ef061444fcb871976ef89c5ca9ded8
Author: Like <li...@163.com>
AuthorDate: Sat Mar 2 23:20:53 2019 +0800

    Use automatic resource management to close streams
    
    We can use automatic resource management introduced in java 7, which makes code shorter.
    
    Reviewers: Sijie Guo <si...@apache.org>
    
    This closes #1958 from liketic/use-resource
---
 .../org/apache/bookkeeper/bookie/BookieStatus.java   | 11 ++---------
 .../java/org/apache/bookkeeper/bookie/Cookie.java    | 11 ++---------
 .../org/apache/bookkeeper/bookie/EntryLogger.java    | 20 +++-----------------
 3 files changed, 7 insertions(+), 35 deletions(-)

diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieStatus.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieStatus.java
index 49aa66e..ecdf82e 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieStatus.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieStatus.java
@@ -123,16 +123,9 @@ public class BookieStatus {
      * @throws IOException
      */
     private static void writeToFile(File file, String body) throws IOException {
-        FileOutputStream fos = new FileOutputStream(file);
-        BufferedWriter bw = null;
-        try {
-            bw = new BufferedWriter(new OutputStreamWriter(fos, UTF_8));
+        try (FileOutputStream fos = new FileOutputStream(file);
+             BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos, UTF_8))) {
             bw.write(body);
-        } finally {
-            if (bw != null) {
-                bw.close();
-            }
-            fos.close();
         }
     }
 
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java
index 7d4175c..1ddc5ab 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Cookie.java
@@ -217,16 +217,9 @@ public class Cookie {
     }
 
     public void writeToFile (File versionFile) throws IOException {
-        FileOutputStream fos = new FileOutputStream(versionFile);
-        BufferedWriter bw = null;
-        try {
-            bw = new BufferedWriter(new OutputStreamWriter(fos, UTF_8));
+        try (FileOutputStream fos = new FileOutputStream(versionFile);
+             BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos, UTF_8))) {
             bw.write(toString());
-        } finally {
-            if (bw != null) {
-                bw.close();
-            }
-            fos.close();
         }
     }
 
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java
index 1389370..55ac611 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryLogger.java
@@ -35,7 +35,6 @@ import io.netty.buffer.Unpooled;
 import io.netty.util.concurrent.FastThreadLocal;
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileFilter;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FilenameFilter;
@@ -547,12 +546,7 @@ public class EntryLogger {
             return id;
         }
         // read failed, scan the ledger directories to find biggest log id
-        File[] logFiles = dir.listFiles(new FileFilter() {
-            @Override
-            public boolean accept(File file) {
-                return file.getName().endsWith(".log");
-            }
-        });
+        File[] logFiles = dir.listFiles(file -> file.getName().endsWith(".log"));
         List<Long> logs = new ArrayList<Long>();
         if (logFiles != null) {
             for (File lf : logFiles) {
@@ -579,19 +573,11 @@ public class EntryLogger {
         } catch (FileNotFoundException e) {
             return INVALID_LID;
         }
-        BufferedReader br = new BufferedReader(new InputStreamReader(fis, UTF_8));
-        try {
+        try (BufferedReader br = new BufferedReader(new InputStreamReader(fis, UTF_8))) {
             String lastIdString = br.readLine();
             return Long.parseLong(lastIdString, 16);
-        } catch (IOException e) {
+        } catch (IOException | NumberFormatException e) {
             return INVALID_LID;
-        } catch (NumberFormatException e) {
-            return INVALID_LID;
-        } finally {
-            try {
-                br.close();
-            } catch (IOException e) {
-            }
         }
     }