You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/09/20 22:50:17 UTC

[commons-net] branch master updated (405bbdf -> e2715a0)

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

ggregory pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git.


    from 405bbdf  Remove some extra parentheses that are truly useless, for example: "return(false);" -> "return false;"
     new dd362ac  Remove unused throws clause from package private constructor.
     new e2715a0  Fix potential resource leaks with try-with-resource blocks.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../net/examples/cidr/SubnetUtilsExample.java      | 17 +++---
 .../commons/net/examples/ftp/FTPClientExample.java | 20 ++-----
 .../commons/net/examples/mail/IMAPExportMbox.java  |  3 +-
 .../commons/net/examples/mail/POP3ExportMbox.java  | 59 ++++++++++----------
 .../apache/commons/net/examples/unix/chargen.java  | 24 ++++----
 .../apache/commons/net/finger/FingerClient.java    | 13 +----
 .../java/org/apache/commons/net/ftp/FTPClient.java | 36 +++++-------
 .../java/org/apache/commons/net/ftp/FTPFile.java   | 64 +++++++++++-----------
 .../apache/commons/net/ftp/FTPListParseEngine.java | 15 +++--
 .../org/apache/commons/net/nntp/NNTPClient.java    | 44 ++++++---------
 .../org/apache/commons/net/smtp/SMTPClient.java    | 12 ++--
 11 files changed, 134 insertions(+), 173 deletions(-)


[commons-net] 01/02: Remove unused throws clause from package private constructor.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit dd362ac29a4e262ab4778416e572bd4246e985c4
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 18:25:09 2020 -0400

    Remove unused throws clause from package private constructor.
---
 src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java b/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
index f98acf9..750c7a7 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/IMAPExportMbox.java
@@ -345,8 +345,7 @@ public final class IMAPExportMbox
         private final boolean printMarker;
         private final boolean checkSequence;
 
-        MboxListener(final BufferedWriter bw, final String eol, final boolean printHash, final boolean printMarker, final boolean checkSequence)
-                throws IOException {
+        MboxListener(final BufferedWriter bw, final String eol, final boolean printHash, final boolean printMarker, final boolean checkSequence) {
           this.eol = eol;
           this.printHash = printHash;
           this.printMarker = printMarker;


[commons-net] 02/02: Fix potential resource leaks with try-with-resource blocks.

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit e2715a012ab91a844d28b0963e2f8b322c225ab9
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 20 18:47:12 2020 -0400

    Fix potential resource leaks with try-with-resource blocks.
---
 .../net/examples/cidr/SubnetUtilsExample.java      | 17 +++---
 .../commons/net/examples/ftp/FTPClientExample.java | 20 ++-----
 .../commons/net/examples/mail/POP3ExportMbox.java  | 59 ++++++++++----------
 .../apache/commons/net/examples/unix/chargen.java  | 24 ++++----
 .../apache/commons/net/finger/FingerClient.java    | 13 +----
 .../java/org/apache/commons/net/ftp/FTPClient.java | 36 +++++-------
 .../java/org/apache/commons/net/ftp/FTPFile.java   | 64 +++++++++++-----------
 .../apache/commons/net/ftp/FTPListParseEngine.java | 15 +++--
 .../org/apache/commons/net/nntp/NNTPClient.java    | 44 ++++++---------
 .../org/apache/commons/net/smtp/SMTPClient.java    | 12 ++--
 10 files changed, 133 insertions(+), 171 deletions(-)

diff --git a/src/main/java/org/apache/commons/net/examples/cidr/SubnetUtilsExample.java b/src/main/java/org/apache/commons/net/examples/cidr/SubnetUtilsExample.java
index 57cb1b8..6786993 100644
--- a/src/main/java/org/apache/commons/net/examples/cidr/SubnetUtilsExample.java
+++ b/src/main/java/org/apache/commons/net/examples/cidr/SubnetUtilsExample.java
@@ -55,17 +55,16 @@ public class SubnetUtilsExample {
         System.out.printf("Total usable addresses: \t%d%n", Long.valueOf(info.getAddressCountLong()));
         System.out.printf("Address List: %s%n%n", Arrays.toString(info.getAllAddresses()));
 
-        final String prompt ="Enter an IP address (e.g. 192.168.0.10):";
+        final String prompt = "Enter an IP address (e.g. 192.168.0.10):";
         System.out.println(prompt);
-        final Scanner scanner = new Scanner(System.in);
-        while (scanner.hasNextLine()) {
-            final String address = scanner.nextLine();
-            System.out.println("The IP address [" + address + "] is "
-                    + (info.isInRange(address) ? "" : "not ")
-                    + "within the subnet [" + subnet + "]");
-            System.out.println(prompt);
+        try (final Scanner scanner = new Scanner(System.in)) {
+            while (scanner.hasNextLine()) {
+                final String address = scanner.nextLine();
+                System.out.println("The IP address [" + address + "] is " + (info.isInRange(address) ? "" : "not ")
+                        + "within the subnet [" + subnet + "]");
+                System.out.println(prompt);
+            }
         }
-        scanner.close();
     }
 
 }
diff --git a/src/main/java/org/apache/commons/net/examples/ftp/FTPClientExample.java b/src/main/java/org/apache/commons/net/examples/ftp/FTPClientExample.java
index 9691ad9..887037d 100644
--- a/src/main/java/org/apache/commons/net/examples/ftp/FTPClientExample.java
+++ b/src/main/java/org/apache/commons/net/examples/ftp/FTPClientExample.java
@@ -397,13 +397,9 @@ __main:
 
             if (storeFile)
             {
-                InputStream input;
-
-                input = new FileInputStream(local);
-
-                ftp.storeFile(remote, input);
-
-                input.close();
+                try (InputStream input = new FileInputStream(local)) {
+                    ftp.storeFile(remote, input);
+                }
 
                 if (keepAliveTimeout > 0) {
                     showCslStats(ftp);
@@ -505,13 +501,9 @@ __main:
             }
             else
             {
-                OutputStream output;
-
-                output = new FileOutputStream(local);
-
-                ftp.retrieveFile(remote, output);
-
-                output.close();
+                try (OutputStream output = new FileOutputStream(local)) {
+                    ftp.retrieveFile(remote, output);
+                }
 
                 if (keepAliveTimeout > 0) {
                     showCslStats(ftp);
diff --git a/src/main/java/org/apache/commons/net/examples/mail/POP3ExportMbox.java b/src/main/java/org/apache/commons/net/examples/mail/POP3ExportMbox.java
index cb28027..2f1410b 100644
--- a/src/main/java/org/apache/commons/net/examples/mail/POP3ExportMbox.java
+++ b/src/main/java/org/apache/commons/net/examples/mail/POP3ExportMbox.java
@@ -141,19 +141,20 @@ public final class POP3ExportMbox
                     System.out.println("Writing dir: " + mbox);
                     // Currently POP3Client uses iso-8859-1
                     for (int i = 1; i <= count; i++) {
-                        final OutputStreamWriter fw = new OutputStreamWriter(
-                            new FileOutputStream(new File(mbox,i+".eml")),StandardCharsets.ISO_8859_1);
-                        writeFile(pop3, fw, i);
-                        fw.close();
+                        try (final OutputStreamWriter fw = new OutputStreamWriter(
+                                new FileOutputStream(new File(mbox, i + ".eml")), StandardCharsets.ISO_8859_1)) {
+                            writeFile(pop3, fw, i);
+                        }
                     }
                 } else {
                     System.out.println("Writing file: " + mbox);
                     // Currently POP3Client uses iso-8859-1
-                    final OutputStreamWriter fw = new OutputStreamWriter(new FileOutputStream(mbox),StandardCharsets.ISO_8859_1);
-                    for (int i = 1; i <= count; i++) {
-                        writeMbox(pop3, fw, i);
+                    try (final OutputStreamWriter fw = new OutputStreamWriter(new FileOutputStream(mbox),
+                            StandardCharsets.ISO_8859_1)) {
+                        for (int i = 1; i <= count; i++) {
+                            writeMbox(pop3, fw, i);
+                        }
                     }
-                    fw.close();
                 }
             }
 
@@ -168,38 +169,36 @@ public final class POP3ExportMbox
     }
 
     private static void writeFile(final POP3Client pop3, final OutputStreamWriter fw, final int i) throws IOException {
-        final BufferedReader r = (BufferedReader) pop3.retrieveMessage(i);
-        String line;
-        while ((line = r.readLine()) != null)
-        {
-            fw.write(line);
-            fw.write("\n");
+        try (final BufferedReader r = (BufferedReader) pop3.retrieveMessage(i)) {
+            String line;
+            while ((line = r.readLine()) != null) {
+                fw.write(line);
+                fw.write("\n");
+            }
         }
-        r.close();
     }
 
     private static void writeMbox(final POP3Client pop3, final OutputStreamWriter fw, final int i) throws IOException {
         final SimpleDateFormat DATE_FORMAT // for mbox From_ lines
-        = new SimpleDateFormat("EEE MMM dd HH:mm:ss YYYY");
+                = new SimpleDateFormat("EEE MMM dd HH:mm:ss YYYY");
         final String replyTo = "MAILER-DAEMON"; // default
         final Date received = new Date();
-        final BufferedReader r = (BufferedReader) pop3.retrieveMessage(i);
-        fw.append("From ");
-        fw.append(replyTo);
-        fw.append(' ');
-        fw.append(DATE_FORMAT.format(received));
-        fw.append("\n");
-        String line;
-        while ((line = r.readLine()) != null)
-        {
-            if (startsWith(line, PATFROM)) {
-                fw.write(">");
+        try (final BufferedReader r = (BufferedReader) pop3.retrieveMessage(i)) {
+            fw.append("From ");
+            fw.append(replyTo);
+            fw.append(' ');
+            fw.append(DATE_FORMAT.format(received));
+            fw.append("\n");
+            String line;
+            while ((line = r.readLine()) != null) {
+                if (startsWith(line, PATFROM)) {
+                    fw.write(">");
+                }
+                fw.write(line);
+                fw.write("\n");
             }
-            fw.write(line);
             fw.write("\n");
         }
-        fw.write("\n");
-        r.close();
     }
 
     private static boolean startsWith(final String input, final Pattern pat) {
diff --git a/src/main/java/org/apache/commons/net/examples/unix/chargen.java b/src/main/java/org/apache/commons/net/examples/unix/chargen.java
index 426ac99..781b7fc 100644
--- a/src/main/java/org/apache/commons/net/examples/unix/chargen.java
+++ b/src/main/java/org/apache/commons/net/examples/unix/chargen.java
@@ -47,26 +47,22 @@ public final class chargen
         int lines = 100;
         String line;
         final CharGenTCPClient client = new CharGenTCPClient();
-        BufferedReader chargenInput;
 
         // We want to timeout if a response takes longer than 60 seconds
         client.setDefaultTimeout(60000);
         client.connect(host);
-        chargenInput =
-            new BufferedReader(new InputStreamReader(client.getInputStream()));
-
-        // We assume the chargen service outputs lines, but it really doesn't
-        // have to, so this code might actually not work if no newlines are
-        // present.
-        while (lines-- > 0)
-        {
-            if ((line = chargenInput.readLine()) == null) {
-                break;
+        try (BufferedReader chargenInput = new BufferedReader(new InputStreamReader(client.getInputStream()))) {
+
+            // We assume the chargen service outputs lines, but it really doesn't
+            // have to, so this code might actually not work if no newlines are
+            // present.
+            while (lines-- > 0) {
+                if ((line = chargenInput.readLine()) == null) {
+                    break;
+                }
+                System.out.println(line);
             }
-            System.out.println(line);
         }
-
-        chargenInput.close();
         client.disconnect();
     }
 
diff --git a/src/main/java/org/apache/commons/net/finger/FingerClient.java b/src/main/java/org/apache/commons/net/finger/FingerClient.java
index 11c7654..4993d86 100644
--- a/src/main/java/org/apache/commons/net/finger/FingerClient.java
+++ b/src/main/java/org/apache/commons/net/finger/FingerClient.java
@@ -85,23 +85,16 @@ public class FingerClient extends SocketClient
     {
         int read;
         final StringBuilder result = new StringBuilder(__buffer.length);
-        BufferedReader input;
 
-        input =
-            new BufferedReader(new InputStreamReader(getInputStream(longOutput,
-                               username), getCharset()));
-
-        try {
-            while (true)
-            {
+        try (BufferedReader input = new BufferedReader(
+                new InputStreamReader(getInputStream(longOutput, username), getCharset()));) {
+            while (true) {
                 read = input.read(__buffer, 0, __buffer.length);
                 if (read <= 0) {
                     break;
                 }
                 result.append(__buffer, 0, read);
             }
-        } finally {
-            input.close();
         }
 
         return result.toString();
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPClient.java b/src/main/java/org/apache/commons/net/ftp/FTPClient.java
index c0ab811..56e0447 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPClient.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPClient.java
@@ -825,9 +825,7 @@ implements Configurable
         {
             // if no activePortRange was set (correctly) -> getActivePort() = 0
             // -> new ServerSocket(0) -> bind to any free local port
-            final ServerSocket server = _serverSocketFactory_.createServerSocket(getActivePort(), 1, getHostAddress());
-
-            try {
+            try (final ServerSocket server = _serverSocketFactory_.createServerSocket(getActivePort(), 1, getHostAddress())) {
                 // Try EPRT only if remote server is over IPv6, if not use PORT,
                 // because EPRT has no advantage over PORT on IPv4.
                 // It could even have the disadvantage,
@@ -872,8 +870,6 @@ implements Configurable
                 if (__sendDataSocketBufferSize > 0) {
                     socket.setSendBufferSize(__sendDataSocketBufferSize);
                 }
-            } finally {
-                server.close();
             }
         }
         else
@@ -2940,27 +2936,25 @@ implements Configurable
      */
     public String[] listNames(final String pathname) throws IOException
     {
-        final Socket socket = _openDataConnection_(FTPCmd.NLST, getListArguments(pathname));
+        final ArrayList<String> results = new ArrayList<>();
+        try (final Socket socket = _openDataConnection_(FTPCmd.NLST, getListArguments(pathname))) {
 
-        if (socket == null) {
-            return null;
-        }
+            if (socket == null) {
+                return null;
+            }
 
-        final BufferedReader reader =
-            new BufferedReader(new InputStreamReader(socket.getInputStream(), getControlEncoding()));
+            try (final BufferedReader reader = new BufferedReader(
+                    new InputStreamReader(socket.getInputStream(), getControlEncoding()))) {
 
-        final ArrayList<String> results = new ArrayList<>();
-        String line;
-        while ((line = reader.readLine()) != null) {
-            results.add(line);
+                String line;
+                while ((line = reader.readLine()) != null) {
+                    results.add(line);
+                }
+            }
         }
 
-        reader.close();
-        socket.close();
-
-        if (completePendingCommand())
-        {
-            final String[] names = new String[ results.size() ];
+        if (completePendingCommand()) {
+            final String[] names = new String[results.size()];
             return results.toArray(names);
         }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPFile.java b/src/main/java/org/apache/commons/net/ftp/FTPFile.java
index 7b3e02d..90b8f2f 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPFile.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPFile.java
@@ -460,44 +460,44 @@ public class FTPFile implements Serializable
             return "[Invalid: could not parse file entry]";
         }
         final StringBuilder sb = new StringBuilder();
-        final Formatter fmt = new Formatter(sb);
-        sb.append(formatType());
-        sb.append(permissionToString(USER_ACCESS));
-        sb.append(permissionToString(GROUP_ACCESS));
-        sb.append(permissionToString(WORLD_ACCESS));
-        fmt.format(" %4d", Integer.valueOf(getHardLinkCount()));
-        fmt.format(" %-8s %-8s", getUser(), getGroup());
-        fmt.format(" %8d", Long.valueOf(getSize()));
-        Calendar timestamp = getTimestamp();
-        if (timestamp != null) {
-            if (timezone != null) {
-                final TimeZone newZone = TimeZone.getTimeZone(timezone);
-                if (!newZone.equals(timestamp.getTimeZone())){
-                    final Date original = timestamp.getTime();
-                    final Calendar newStamp = Calendar.getInstance(newZone);
-                    newStamp.setTime(original);
-                    timestamp = newStamp;
+        try (final Formatter fmt = new Formatter(sb)) {
+            sb.append(formatType());
+            sb.append(permissionToString(USER_ACCESS));
+            sb.append(permissionToString(GROUP_ACCESS));
+            sb.append(permissionToString(WORLD_ACCESS));
+            fmt.format(" %4d", Integer.valueOf(getHardLinkCount()));
+            fmt.format(" %-8s %-8s", getUser(), getGroup());
+            fmt.format(" %8d", Long.valueOf(getSize()));
+            Calendar timestamp = getTimestamp();
+            if (timestamp != null) {
+                if (timezone != null) {
+                    final TimeZone newZone = TimeZone.getTimeZone(timezone);
+                    if (!newZone.equals(timestamp.getTimeZone())) {
+                        final Date original = timestamp.getTime();
+                        final Calendar newStamp = Calendar.getInstance(newZone);
+                        newStamp.setTime(original);
+                        timestamp = newStamp;
+                    }
                 }
-            }
-            fmt.format(" %1$tY-%1$tm-%1$td", timestamp);
-            // Only display time units if they are present
-            if (timestamp.isSet(Calendar.HOUR_OF_DAY)) {
-                fmt.format(" %1$tH", timestamp);
-                if (timestamp.isSet(Calendar.MINUTE)) {
-                    fmt.format(":%1$tM", timestamp);
-                    if (timestamp.isSet(Calendar.SECOND)) {
-                        fmt.format(":%1$tS", timestamp);
-                        if (timestamp.isSet(Calendar.MILLISECOND)) {
-                            fmt.format(".%1$tL", timestamp);
+                fmt.format(" %1$tY-%1$tm-%1$td", timestamp);
+                // Only display time units if they are present
+                if (timestamp.isSet(Calendar.HOUR_OF_DAY)) {
+                    fmt.format(" %1$tH", timestamp);
+                    if (timestamp.isSet(Calendar.MINUTE)) {
+                        fmt.format(":%1$tM", timestamp);
+                        if (timestamp.isSet(Calendar.SECOND)) {
+                            fmt.format(":%1$tS", timestamp);
+                            if (timestamp.isSet(Calendar.MILLISECOND)) {
+                                fmt.format(".%1$tL", timestamp);
+                            }
                         }
                     }
+                    fmt.format(" %1$tZ", timestamp);
                 }
-                fmt.format(" %1$tZ", timestamp);
             }
+            sb.append(' ');
+            sb.append(getName());
         }
-        sb.append(' ');
-        sb.append(getName());
-        fmt.close();
         return sb.toString();
     }
 
diff --git a/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java b/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
index 6542ea2..a8e625e 100644
--- a/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
+++ b/src/main/java/org/apache/commons/net/ftp/FTPListParseEngine.java
@@ -136,17 +136,16 @@ public class FTPListParseEngine {
      */
     private void readStream(final InputStream stream, final String encoding) throws IOException
     {
-        final BufferedReader reader = new BufferedReader(
-                new InputStreamReader(stream, Charsets.toCharset(encoding)));
+        try (final BufferedReader reader = new BufferedReader(
+                new InputStreamReader(stream, Charsets.toCharset(encoding)))) {
 
-        String line = this.parser.readNextEntry(reader);
+            String line = this.parser.readNextEntry(reader);
 
-        while (line != null)
-        {
-            this.entries.add(line);
-            line = this.parser.readNextEntry(reader);
+            while (line != null) {
+                this.entries.add(line);
+                line = this.parser.readNextEntry(reader);
+            }
         }
-        reader.close();
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/net/nntp/NNTPClient.java b/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
index 82504ef..036972e 100644
--- a/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
+++ b/src/main/java/org/apache/commons/net/nntp/NNTPClient.java
@@ -244,13 +244,12 @@ public class NNTPClient extends NNTP
     private NewsgroupInfo[] __readNewsgroupListing() throws IOException
     {
 
-        final BufferedReader reader = new DotTerminatedMessageReader(_reader_);
         // Start of with a big vector because we may be reading a very large
         // amount of groups.
         final Vector<NewsgroupInfo> list = new Vector<>(2048);
 
         String line;
-        try {
+        try (final BufferedReader reader = new DotTerminatedMessageReader(_reader_)) {
             while ((line = reader.readLine()) != null) {
                 final NewsgroupInfo tmp = __parseNewsgroupListEntry(line);
                 if (tmp != null) {
@@ -259,8 +258,6 @@ public class NNTPClient extends NNTP
                     throw new MalformedServerReplyException(line);
                 }
             }
-        } finally {
-            reader.close();
         }
         int size;
         if ((size = list.size()) < 1) {
@@ -769,12 +766,11 @@ public class NNTPClient extends NNTP
             return null;
         }
 
-        final StringWriter help = new StringWriter();
-        final BufferedReader reader = new DotTerminatedMessageReader(_reader_);
-        Util.copyReader(reader, help);
-        reader.close();
-        help.close();
-        return help.toString();
+        try (final StringWriter help = new StringWriter();
+                final BufferedReader reader = new DotTerminatedMessageReader(_reader_)) {
+            Util.copyReader(reader, help);
+            return help.toString();
+        }
     }
 
     /**
@@ -785,18 +781,18 @@ public class NNTPClient extends NNTP
      */
     public String[] listOverviewFmt() throws IOException
     {
-        if (!NNTPReply.isPositiveCompletion(sendCommand("LIST", "OVERVIEW.FMT"))){
+        if (!NNTPReply.isPositiveCompletion(sendCommand("LIST", "OVERVIEW.FMT"))) {
             return null;
         }
 
-        final BufferedReader reader = new DotTerminatedMessageReader(_reader_);
-        String line;
-        final ArrayList<String> list = new ArrayList<>();
-        while((line=reader.readLine()) != null) {
-            list.add(line);
+        try (final BufferedReader reader = new DotTerminatedMessageReader(_reader_)) {
+            String line;
+            final ArrayList<String> list = new ArrayList<>();
+            while ((line = reader.readLine()) != null) {
+                list.add(line);
+            }
+            return list.toArray(new String[list.size()]);
         }
-        reader.close();
-        return list.toArray(new String[list.size()]);
     }
 
     /***
@@ -1258,22 +1254,18 @@ public class NNTPClient extends NNTP
     public String[] listNewNews(final NewGroupsOrNewsQuery query)
     throws IOException
     {
-        if (!NNTPReply.isPositiveCompletion(
-                newnews(query.getNewsgroups(), query.getDate(), query.getTime(),
-                        query.isGMT(), query.getDistributions()))) {
+        if (!NNTPReply.isPositiveCompletion(newnews(query.getNewsgroups(), query.getDate(), query.getTime(),
+                query.isGMT(), query.getDistributions()))) {
             return null;
         }
 
         final Vector<String> list = new Vector<>();
-        final BufferedReader reader = new DotTerminatedMessageReader(_reader_);
+        try (final BufferedReader reader = new DotTerminatedMessageReader(_reader_)) {
 
-        String line;
-        try {
+            String line;
             while ((line = reader.readLine()) != null) {
                 list.addElement(line);
             }
-        } finally {
-            reader.close();
         }
 
         final int size = list.size();
diff --git a/src/main/java/org/apache/commons/net/smtp/SMTPClient.java b/src/main/java/org/apache/commons/net/smtp/SMTPClient.java
index bdf447f..4abf4a3 100644
--- a/src/main/java/org/apache/commons/net/smtp/SMTPClient.java
+++ b/src/main/java/org/apache/commons/net/smtp/SMTPClient.java
@@ -388,17 +388,15 @@ public class SMTPClient extends SMTP
      ***/
     public boolean sendShortMessageData(final String message) throws IOException
     {
-        Writer writer;
+        try (Writer writer = sendMessageData()) {
 
-        writer = sendMessageData();
+            if (writer == null) {
+                return false;
+            }
 
-        if (writer == null) {
-            return false;
+            writer.write(message);
         }
 
-        writer.write(message);
-        writer.close();
-
         return completePendingCommand();
     }