Index: applications/editors/josm/plugins/poly/src/poly/PolyExporter.java
===================================================================
--- applications/editors/josm/plugins/poly/src/poly/PolyExporter.java	(revision 30737)
+++ applications/editors/josm/plugins/poly/src/poly/PolyExporter.java	(revision 30738)
@@ -25,5 +25,5 @@
 /**
  * Writes poly files.
- * 
+ *
  * @author zverik
  */
@@ -37,6 +37,5 @@
     public void exportData( File file, Layer layer ) throws IOException {
         if( layer instanceof OsmDataLayer ) {
-            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF8"));
-            try {
+            try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF8"))) {
                 DataSet ds = ((OsmDataLayer)layer).data;
                 Map<Way, Boolean> ways = new TreeMap<>();
@@ -71,6 +70,4 @@
                 writer.write("END");
                 writer.newLine();
-            } finally {
-                writer.close();
             }
         }
Index: applications/editors/josm/plugins/poly/src/poly/PolyImporter.java
===================================================================
--- applications/editors/josm/plugins/poly/src/poly/PolyImporter.java	(revision 30737)
+++ applications/editors/josm/plugins/poly/src/poly/PolyImporter.java	(revision 30738)
@@ -1,3 +1,5 @@
 package poly;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.io.BufferedReader;
@@ -7,9 +9,9 @@
 import java.util.ArrayList;
 import java.util.List;
+
 import javax.swing.JOptionPane;
+
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -19,6 +21,6 @@
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.io.IllegalDataException;
-import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.io.OsmImporter;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
@@ -44,13 +46,11 @@
             progressMonitor = NullProgressMonitor.INSTANCE;
         CheckParameterUtil.ensureParameterNotNull(in, "in");
-        BufferedReader reader = null;
-
-        try {
+
+        try (BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF8"))) {
             progressMonitor.beginTask(tr("Reading polygon filter file..."), 2);
             progressMonitor.indeterminateSubTask(tr("Reading polygon filter file..."));
-            reader = new BufferedReader(new InputStreamReader(in, "UTF8"));
             List<Area> areas = loadPolygon(reader);
             progressMonitor.worked(1);
-            
+
             progressMonitor.indeterminateSubTask(tr("Preparing data set..."));
             DataSet ds = constructDataSet(areas);
@@ -60,12 +60,8 @@
             throw new IllegalDataException(tr("Error reading poly file: {0}", e.getMessage()), e);
         } finally {
-            try {
-                if( reader != null )
-                    reader.close();
-            } catch( IOException e ) { }
             progressMonitor.finishTask();
         }
     }
-    
+
     private List<Area> loadPolygon( BufferedReader reader ) throws IllegalDataException, IOException {
         String name = reader.readLine();
@@ -145,5 +141,5 @@
         DataSet ds = new DataSet();
         ds.setUploadDiscouraged(true);
-        
+
         boolean foundInner = false;
         for( Area area : areas ) {
