PARQUET-1954: TCP connection leak in parquet dump (#849)

diff --git a/parquet-tools/src/main/java/org/apache/parquet/tools/command/DumpCommand.java b/parquet-tools/src/main/java/org/apache/parquet/tools/command/DumpCommand.java
index eaf6e8e..6ae31c5 100644
--- a/parquet-tools/src/main/java/org/apache/parquet/tools/command/DumpCommand.java
+++ b/parquet-tools/src/main/java/org/apache/parquet/tools/command/DumpCommand.java
@@ -163,50 +163,44 @@
             }
         }
 
-        ParquetFileReader freader = null;
         if (showmd) {
-            try {
-                long group = 0;
-                for (BlockMetaData block : blocks) {
-                    if (group != 0) out.println();
-                    out.format("row group %d%n", group++);
-                    out.rule('-');
+          long group = 0;
+          for (BlockMetaData block : blocks) {
+            if (group != 0)
+              out.println();
+            out.format("row group %d%n", group++);
+            out.rule('-');
 
-
-                    List<ColumnChunkMetaData> ccmds = block.getColumns();
-                    if (showColumns != null) {
-                        ccmds = new ArrayList<ColumnChunkMetaData>();
-                        for (ColumnChunkMetaData ccmd : block.getColumns()) {
-                            String path = Joiner.on('.').skipNulls().join(ccmd.getPath().toArray());
-                            if (showColumns.contains(path)) {
-                                ccmds.add(ccmd);
-                            }
-                        }
-                    }
-
-                    MetadataUtils.showDetails(out, ccmds);
-
-                    List<BlockMetaData> rblocks = Collections.singletonList(block);
-                    freader = new ParquetFileReader(
-                        conf, meta.getFileMetaData(), inpath, rblocks, columns);
-                    PageReadStore store = freader.readNextRowGroup();
-                    while (store != null) {
-                        out.incrementTabLevel();
-                        for (ColumnDescriptor column : columns) {
-                            out.println();
-                            dump(out, store, column);
-                        }
-                        out.decrementTabLevel();
-
-                        store = freader.readNextRowGroup();
-                    }
-                    out.flushColumns();
+            List<ColumnChunkMetaData> ccmds = block.getColumns();
+            if (showColumns != null) {
+              ccmds = new ArrayList<ColumnChunkMetaData>();
+              for (ColumnChunkMetaData ccmd : block.getColumns()) {
+                String path = Joiner.on('.').skipNulls().join(ccmd.getPath().toArray());
+                if (showColumns.contains(path)) {
+                  ccmds.add(ccmd);
                 }
-            } finally {
-                if (freader != null) {
-                    freader.close();
-                }
+              }
             }
+
+            MetadataUtils.showDetails(out, ccmds);
+
+            List<BlockMetaData> rblocks = Collections.singletonList(block);
+            try (ParquetFileReader freader = new ParquetFileReader(conf, meta.getFileMetaData(), inpath, rblocks,
+              columns)) {
+              PageReadStore store = freader.readNextRowGroup();
+              while (store != null) {
+                out.incrementTabLevel();
+                for (ColumnDescriptor column : columns) {
+                  out.println();
+                  dump(out, store, column);
+                }
+                out.decrementTabLevel();
+
+                store = freader.readNextRowGroup();
+              }
+              out.flushColumns();
+            }
+          }
         }
 
         if (showdt) {
@@ -221,25 +215,22 @@
                     long page = 1;
                     long total = blocks.size();
                     long offset = 1;
-                    freader = new ParquetFileReader(
-                        conf, meta.getFileMetaData(), inpath, blocks, Collections.singletonList(column));
-                    PageReadStore store = freader.readNextRowGroup();
-                    while (store != null) {
+                    try(ParquetFileReader freader = new ParquetFileReader(
+                      conf, meta.getFileMetaData(), inpath, blocks, Collections.singletonList(column))){
+                      PageReadStore store = freader.readNextRowGroup();
+                      while (store != null) {
                         ColumnReadStoreImpl crstore = new ColumnReadStoreImpl(
-                            store, new DumpGroupConverter(), schema,
-                            meta.getFileMetaData().getCreatedBy());
+                          store, new DumpGroupConverter(), schema,
+                          meta.getFileMetaData().getCreatedBy());
                         dump(out, crstore, column, page++, total, offset);
 
                         offset += store.getRowCount();
                         store = freader.readNextRowGroup();
+                      }
                     }
-
                     out.flushColumns();
                 } finally {
                     out.flushColumns();
-                    if (freader != null) {
-                        freader.close();
-                    }
                 }
             }
         }