Changeset 7033 in josm for trunk/src/org/openstreetmap/josm/io
- Timestamp:
- 2014-05-01T02:34:43+02:00 (10 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/io
- Files:
-
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java
r6474 r7033 12 12 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 13 13 import org.openstreetmap.josm.tools.CheckParameterUtil; 14 import org.openstreetmap.josm.tools.Utils;15 14 import org.xml.sax.SAXException; 16 15 … … 48 47 for (int i = 0;!done;++i) { 49 48 progressMonitor.subTask(tr("Downloading points {0} to {1}...", i * 5000, ((i + 1) * 5000))); 50 InputStream in = getInputStream(url+i, progressMonitor.createSubTaskMonitor(1, true)); 51 if (in == null) { 52 break; 49 try (InputStream in = getInputStream(url+i, progressMonitor.createSubTaskMonitor(1, true))) { 50 if (in == null) { 51 break; 52 } 53 progressMonitor.setTicks(0); 54 GpxReader reader = new GpxReader(in); 55 gpxParsedProperly = reader.parse(false); 56 GpxData currentGpx = reader.getGpxData(); 57 if (result == null) { 58 result = currentGpx; 59 } else if (currentGpx.hasTrackPoints()) { 60 result.mergeFrom(currentGpx); 61 } else{ 62 done = true; 63 } 53 64 } 54 progressMonitor.setTicks(0);55 GpxReader reader = new GpxReader(in);56 gpxParsedProperly = reader.parse(false);57 GpxData currentGpx = reader.getGpxData();58 if (result == null) {59 result = currentGpx;60 } else if (currentGpx.hasTrackPoints()) {61 result.mergeFrom(currentGpx);62 } else{63 done = true;64 }65 Utils.close(in);66 65 activeConnection = null; 67 66 } 68 result.fromServer = true; 67 if (result != null) { 68 result.fromServer = true; 69 } 69 70 return result; 70 71 } … … 113 114 public DataSet parseOsm(ProgressMonitor progressMonitor) throws OsmTransferException { 114 115 progressMonitor.beginTask(tr("Contacting OSM Server..."), 10); 115 InputStream in = null;116 116 try { 117 117 DataSet ds = null; … … 119 119 if (crosses180th) { 120 120 // API 0.6 does not support requests crossing the 180th meridian, so make two requests 121 in = getInputStream(getRequestForBbox(lon1, lat1, 180.0, lat2), progressMonitor.createSubTaskMonitor(9, false)); 122 if (in == null) 123 return null; 124 ds = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false)); 121 DataSet ds2 = null; 125 122 126 in = getInputStream(getRequestForBbox(-180.0, lat1, lon2, lat2), progressMonitor.createSubTaskMonitor(9, false)); 127 if (in == null) 128 return null; 129 DataSet ds2 = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false)); 123 try (InputStream in = getInputStream(getRequestForBbox(lon1, lat1, 180.0, lat2), progressMonitor.createSubTaskMonitor(9, false))) { 124 if (in == null) 125 return null; 126 ds = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false)); 127 } 128 129 try (InputStream in = getInputStream(getRequestForBbox(-180.0, lat1, lon2, lat2), progressMonitor.createSubTaskMonitor(9, false))) { 130 if (in == null) 131 return null; 132 ds2 = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false)); 133 } 130 134 if (ds2 == null) 131 135 return null; … … 134 138 } else { 135 139 // Simple request 136 in = getInputStream(getRequestForBbox(lon1, lat1, lon2, lat2), progressMonitor.createSubTaskMonitor(9, false)); 137 if (in == null) 138 return null; 139 ds = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false)); 140 try (InputStream in = getInputStream(getRequestForBbox(lon1, lat1, lon2, lat2), progressMonitor.createSubTaskMonitor(9, false))) { 141 if (in == null) 142 return null; 143 ds = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false)); 144 } 140 145 } 141 146 return ds; … … 146 151 } finally { 147 152 progressMonitor.finishTask(); 148 Utils.close(in);149 153 activeConnection = null; 150 154 } -
trunk/src/org/openstreetmap/josm/io/CacheCustomContent.java
r7026 r7033 145 145 */ 146 146 private void loadFromDisk() throws T { 147 BufferedInputStream input = null; 148 try { 149 input = new BufferedInputStream(new FileInputStream(path)); 147 try (BufferedInputStream input = new BufferedInputStream(new FileInputStream(path))) { 150 148 this.data = new byte[input.available()]; 151 149 input.read(this.data); 152 150 } catch (IOException e) { 153 151 this.data = updateForce(); 154 } finally {155 Utils.close(input);156 152 } 157 153 } … … 161 157 */ 162 158 private void saveToDisk() { 163 BufferedOutputStream output = null; 164 try { 165 output = new BufferedOutputStream(new FileOutputStream(path)); 159 try (BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(path))) { 166 160 output.write(this.data); 167 161 output.flush(); 168 } catch (Exception e) {162 } catch (IOException e) { 169 163 Main.error(e); 170 } finally {171 Utils.close(output);172 164 } 173 165 } -
trunk/src/org/openstreetmap/josm/io/CacheFiles.java
r7005 r7033 114 114 115 115 byte[] bytes = new byte[(int) data.length()]; 116 new RandomAccessFile(data, "r").readFully(bytes); 116 try (RandomAccessFile raf = new RandomAccessFile(data, "r")) { 117 raf.readFully(bytes); 118 } 117 119 return bytes; 118 120 } catch (Exception e) { … … 135 137 } 136 138 // rws also updates the file meta-data, i.e. last mod time 137 RandomAccessFile raf = new RandomAccessFile(f, "rws"); 138 try { 139 try (RandomAccessFile raf = new RandomAccessFile(f, "rws")) { 139 140 raf.write(data); 140 } finally {141 Utils.close(raf);142 141 } 143 142 } catch (Exception e) { -
trunk/src/org/openstreetmap/josm/io/Compression.java
r6882 r7033 75 75 * @throws IOException 76 76 */ 77 @SuppressWarnings("resource") 77 78 public static InputStream getUncompressedFileInputStream(File file) throws IOException { 78 79 return byExtension(file.getName()).getUncompressedInputStream(new FileInputStream(file)); … … 114 115 * @throws IOException 115 116 */ 117 @SuppressWarnings("resource") 116 118 public static OutputStream getCompressedFileOutputStream(File file) throws IOException { 117 119 return byExtension(file.getName()).getCompressedOutputStream(new FileOutputStream(file)); -
trunk/src/org/openstreetmap/josm/io/GeoJSONExporter.java
r6552 r7033 21 21 "json,geojson", "json", tr("GeoJSON Files") + " (*.json *.geojson)"); 22 22 23 /** 24 * Constructs a new {@code GeoJSONExporter}. 25 */ 23 26 public GeoJSONExporter() { 24 27 super(FILE_FILTER); … … 29 32 if (layer instanceof OsmDataLayer) { 30 33 String json = new GeoJSONWriter((OsmDataLayer) layer).write(); 31 Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), Utils.UTF_8)); 32 try { 34 try (Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), Utils.UTF_8))) { 33 35 out.write(json); 34 } finally {35 Utils.close(out);36 36 } 37 37 } else { -
trunk/src/org/openstreetmap/josm/io/GpxImporter.java
r6798 r7033 76 76 @Override 77 77 public void importData(File file, ProgressMonitor progressMonitor) throws IOException { 78 final InputStream is = Compression.getUncompressedFileInputStream(file);79 78 final String fileName = file.getName(); 80 79 81 try {80 try (InputStream is = Compression.getUncompressedFileInputStream(file)) { 82 81 GpxReader r = new GpxReader(is); 83 82 boolean parsedProperly = r.parse(true); -
trunk/src/org/openstreetmap/josm/io/GpxReader.java
r7012 r7033 507 507 508 508 /** 509 * Parse the input stream and store the result in trackData and markerData 509 * Constructs a new {@code GpxReader}, which can later parse the input stream 510 * and store the result in trackData and markerData 510 511 * 511 512 * @param source the source input stream 512 513 * @throws IOException if an IO error occurs, e.g. the input stream is closed. 513 514 */ 515 @SuppressWarnings("resource") 514 516 public GpxReader(InputStream source) throws IOException { 515 517 Reader utf8stream = UTFInputStreamReader.create(source); -
trunk/src/org/openstreetmap/josm/io/GpxWriter.java
r6889 r7033 11 11 import java.util.Map; 12 12 import java.util.Map.Entry; 13 14 import javax.xml.XMLConstants; 13 15 14 16 import org.openstreetmap.josm.data.Bounds; … … 67 69 out.println("<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"\n" + 68 70 (hasExtensions ? String.format(" xmlns:josm=\"%s\"%n", JOSM_EXTENSIONS_NAMESPACE_URI) : "") + 69 " xmlns:xsi=\" http://www.w3.org/2001/XMLSchema-instance\" \n" +71 " xmlns:xsi=\""+XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI+"\" \n" + 70 72 " xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\">"); 71 73 indent = " "; -
trunk/src/org/openstreetmap/josm/io/MirroredInputStream.java
r7026 r7033 11 11 import java.io.IOException; 12 12 import java.io.InputStream; 13 import java.io.OutputStream; 13 14 import java.net.HttpURLConnection; 14 15 import java.net.MalformedURLException; … … 184 185 } 185 186 187 @SuppressWarnings("resource") 186 188 private Pair<String, InputStream> findZipEntryImpl(String extension, String namepart) { 187 189 if (file == null) … … 293 295 String localPath = "mirror_" + a; 294 296 destDirFile = new File(destDir, localPath + ".tmp"); 295 BufferedOutputStream bos = null;296 BufferedInputStream bis = null;297 297 try { 298 298 HttpURLConnection con = connectFollowingRedirect(url, httpAccept); 299 bis = new BufferedInputStream(con.getInputStream()); 300 FileOutputStream fos = new FileOutputStream(destDirFile); 301 bos = new BufferedOutputStream(fos); 302 byte[] buffer = new byte[4096]; 303 int length; 304 while ((length = bis.read(buffer)) > -1) { 305 bos.write(buffer, 0, length); 306 } 307 Utils.close(bos); 308 bos = null; 309 /* close fos as well to be sure! */ 310 Utils.close(fos); 311 fos = null; 299 try ( 300 InputStream bis = new BufferedInputStream(con.getInputStream()); 301 OutputStream fos = new FileOutputStream(destDirFile); 302 OutputStream bos = new BufferedOutputStream(fos) 303 ) { 304 byte[] buffer = new byte[4096]; 305 int length; 306 while ((length = bis.read(buffer)) > -1) { 307 bos.write(buffer, 0, length); 308 } 309 } 312 310 localFile = new File(destDir, localPath); 313 311 if(Main.platform.rename(destDirFile, localFile)) { … … 325 323 throw e; 326 324 } 327 } finally {328 Utils.close(bis);329 Utils.close(bos);330 325 } 331 326 -
trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java
r7005 r7033 5 5 import static org.openstreetmap.josm.tools.I18n.trn; 6 6 7 import java.io.IOException; 7 8 import java.io.InputStream; 8 9 import java.net.HttpURLConnection; … … 506 507 protected FetchResult multiGetIdPackage(OsmPrimitiveType type, Set<Long> pkg, ProgressMonitor progressMonitor) throws OsmTransferException { 507 508 String request = buildRequestString(type, pkg); 508 final InputStream in = getInputStream(request, NullProgressMonitor.INSTANCE); 509 if (in == null) return null; 510 progressMonitor.subTask(tr("Downloading OSM data...")); 511 try { 512 return new FetchResult(OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(pkg.size(), false)), null); 513 } catch (Exception e) { 514 throw new OsmTransferException(e); 515 } 509 FetchResult result = null; 510 try (InputStream in = getInputStream(request, NullProgressMonitor.INSTANCE)) { 511 if (in == null) return null; 512 progressMonitor.subTask(tr("Downloading OSM data...")); 513 try { 514 result = new FetchResult(OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(pkg.size(), false)), null); 515 } catch (Exception e) { 516 throw new OsmTransferException(e); 517 } 518 } catch (IOException ex) { 519 Main.warn(ex); 520 } 521 return result; 516 522 } 517 523 … … 527 533 protected DataSet singleGetId(OsmPrimitiveType type, long id, ProgressMonitor progressMonitor) throws OsmTransferException { 528 534 String request = buildRequestString(type, id); 529 final InputStream in = getInputStream(request, NullProgressMonitor.INSTANCE); 530 if (in == null) return null; 531 progressMonitor.subTask(tr("Downloading OSM data...")); 532 try { 533 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false)); 534 } catch (Exception e) { 535 throw new OsmTransferException(e); 536 } 535 DataSet result = null; 536 try (InputStream in = getInputStream(request, NullProgressMonitor.INSTANCE)) { 537 if (in == null) return null; 538 progressMonitor.subTask(tr("Downloading OSM data...")); 539 try { 540 result = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false)); 541 } catch (Exception e) { 542 throw new OsmTransferException(e); 543 } 544 } catch (IOException ex) { 545 Main.warn(ex); 546 } 547 return result; 537 548 } 538 549 -
trunk/src/org/openstreetmap/josm/io/NMEAImporter.java
r6798 r7033 7 7 import java.io.FileInputStream; 8 8 import java.io.IOException; 9 import java.io.InputStream; 9 10 10 11 import javax.swing.JOptionPane; … … 35 36 public void importData(File file, ProgressMonitor progressMonitor) throws IOException { 36 37 final String fn = file.getName(); 37 final NmeaReader r = new NmeaReader(new FileInputStream(file)); 38 if (r.getNumberOfCoordinates() > 0) { 39 r.data.storageFile = file; 40 final GpxLayer gpxLayer = new GpxLayer(r.data, fn, true); 41 final File fileFinal = file; 42 43 GuiHelper.runInEDT(new Runnable() { 44 @Override 45 public void run() { 46 Main.main.addLayer(gpxLayer); 47 if (Main.pref.getBoolean("marker.makeautomarkers", true)) { 48 MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), fileFinal, gpxLayer); 49 if (!ml.data.isEmpty()) { 50 Main.main.addLayer(ml); 38 try (InputStream fis = new FileInputStream(file)) { 39 final NmeaReader r = new NmeaReader(fis); 40 if (r.getNumberOfCoordinates() > 0) { 41 r.data.storageFile = file; 42 final GpxLayer gpxLayer = new GpxLayer(r.data, fn, true); 43 final File fileFinal = file; 44 45 GuiHelper.runInEDT(new Runnable() { 46 @Override 47 public void run() { 48 Main.main.addLayer(gpxLayer); 49 if (Main.pref.getBoolean("marker.makeautomarkers", true)) { 50 MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), fileFinal, gpxLayer); 51 if (!ml.data.isEmpty()) { 52 Main.main.addLayer(ml); 53 } 51 54 } 52 55 } 53 } 54 }); 56 }); 57 } 58 showNmeaInfobox(r.getNumberOfCoordinates() > 0, r); 55 59 } 56 showNmeaInfobox(r.getNumberOfCoordinates() > 0, r);57 60 } 58 61 -
trunk/src/org/openstreetmap/josm/io/OsmApi.java
r7030 r7033 290 290 private String toXml(IPrimitive o, boolean addBody) { 291 291 StringWriter swriter = new StringWriter(); 292 OsmWriter osmWriter = OsmWriterFactory.createOsmWriter(new PrintWriter(swriter), true, version); 293 swriter.getBuffer().setLength(0); 294 osmWriter.setWithBody(addBody); 295 osmWriter.setChangeset(changeset); 296 osmWriter.header(); 297 o.accept(osmWriter); 298 osmWriter.footer(); 299 osmWriter.flush(); 292 try (OsmWriter osmWriter = OsmWriterFactory.createOsmWriter(new PrintWriter(swriter), true, version)) { 293 swriter.getBuffer().setLength(0); 294 osmWriter.setWithBody(addBody); 295 osmWriter.setChangeset(changeset); 296 osmWriter.header(); 297 o.accept(osmWriter); 298 osmWriter.footer(); 299 osmWriter.flush(); 300 } catch (IOException e) { 301 Main.warn(e); 302 } 300 303 return swriter.toString(); 301 304 } … … 308 311 private String toXml(Changeset s) { 309 312 StringWriter swriter = new StringWriter(); 310 OsmWriter osmWriter = OsmWriterFactory.createOsmWriter(new PrintWriter(swriter), true, version); 311 swriter.getBuffer().setLength(0); 312 osmWriter.header(); 313 osmWriter.visit(s); 314 osmWriter.footer(); 315 osmWriter.flush(); 313 try (OsmWriter osmWriter = OsmWriterFactory.createOsmWriter(new PrintWriter(swriter), true, version)) { 314 swriter.getBuffer().setLength(0); 315 osmWriter.header(); 316 osmWriter.visit(s); 317 osmWriter.footer(); 318 osmWriter.flush(); 319 } catch (IOException e) { 320 Main.warn(e); 321 } 316 322 return swriter.toString(); 317 323 } … … 657 663 // If the API returned an error code like 403 forbidden, getInputStream 658 664 // will fail with an IOException. 659 InputStream i = null; 660 try { 661 i = activeConnection.getInputStream(); 662 } catch (IOException ioe) { 663 i = activeConnection.getErrorStream(); 664 } 665 InputStream i = getConnectionStream(); 665 666 if (i != null) { 666 667 // the input stream can be null if both the input and the error stream … … 722 723 } 723 724 725 private InputStream getConnectionStream() { 726 try { 727 return activeConnection.getInputStream(); 728 } catch (IOException ioe) { 729 Main.warn(ioe); 730 return activeConnection.getErrorStream(); 731 } 732 } 733 724 734 /** 725 735 * Replies the API capabilities -
trunk/src/org/openstreetmap/josm/io/OsmChangesetContentParser.java
r7012 r7033 123 123 * @throws IllegalArgumentException if source is {@code null}. 124 124 */ 125 @SuppressWarnings("resource") 125 126 public OsmChangesetContentParser(InputStream source) { 126 127 CheckParameterUtil.ensureParameterNotNull(source, "source"); -
trunk/src/org/openstreetmap/josm/io/OsmChangesetParser.java
r7012 r7033 41 41 */ 42 42 public final class OsmChangesetParser { 43 private List<Changeset> changesets;43 private final List<Changeset> changesets; 44 44 45 45 private OsmChangesetParser() { … … 219 219 * @throws IllegalDataException thrown if the an error was found while parsing the data from the source 220 220 */ 221 @SuppressWarnings("resource") 221 222 public static List<Changeset> parse(InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException { 222 223 OsmChangesetParser parser = new OsmChangesetParser(); -
trunk/src/org/openstreetmap/josm/io/OsmExporter.java
r7029 r7033 23 23 public class OsmExporter extends FileExporter { 24 24 25 /** 26 * Constructs a new {@code OsmExporter}. 27 */ 25 28 public OsmExporter() { 26 29 super(OsmImporter.FILE_FILTER); … … 67 70 68 71 // create outputstream and wrap it with gzip or bzip, if necessary 69 OutputStream out = getOutputStream(file); 70 Writer writer = new OutputStreamWriter(out, Utils.UTF_8); 71 72 OsmWriter w = OsmWriterFactory.createOsmWriter(new PrintWriter(writer), false, layer.data.getVersion()); 73 layer.data.getReadLock().lock(); 74 try { 75 w.writeLayer(layer); 76 } finally { 77 Utils.close(w); 78 layer.data.getReadLock().unlock(); 72 try ( 73 OutputStream out = getOutputStream(file); 74 Writer writer = new OutputStreamWriter(out, Utils.UTF_8); 75 OsmWriter w = OsmWriterFactory.createOsmWriter(new PrintWriter(writer), false, layer.data.getVersion()); 76 ) { 77 layer.data.getReadLock().lock(); 78 try { 79 w.writeLayer(layer); 80 } finally { 81 layer.data.getReadLock().unlock(); 82 } 79 83 } 80 // FIXME - how to close?81 84 if (noBackup || !Main.pref.getBoolean("save.keepbackup", false)) { 82 85 if (tmpFile != null) { -
trunk/src/org/openstreetmap/josm/io/OsmReader.java
r7025 r7033 587 587 progressMonitor.indeterminateSubTask(tr("Parsing OSM data...")); 588 588 589 InputStreamReader ir = UTFInputStreamReader.create(source); 590 XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(ir); 591 setParser(parser); 592 parse(); 589 try (InputStreamReader ir = UTFInputStreamReader.create(source)) { 590 XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(ir); 591 setParser(parser); 592 parse(); 593 } 593 594 progressMonitor.worked(1); 594 595 -
trunk/src/org/openstreetmap/josm/io/OsmServerBackreferenceReader.java
r7005 r7033 18 18 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 19 19 import org.openstreetmap.josm.tools.CheckParameterUtil; 20 import org.openstreetmap.josm.tools.Utils;21 20 22 21 /** … … 131 130 */ 132 131 protected DataSet getReferringWays(ProgressMonitor progressMonitor) throws OsmTransferException { 133 InputStream in = null;134 132 progressMonitor.beginTask(null, 2); 135 133 try { … … 139 137 .append("/").append(id).append("/ways"); 140 138 141 in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true)); 142 if (in == null) 143 return null; 144 progressMonitor.subTask(tr("Downloading referring ways ...")); 145 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, true)); 139 try (InputStream in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true))) { 140 if (in == null) 141 return null; 142 progressMonitor.subTask(tr("Downloading referring ways ...")); 143 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, true)); 144 } 146 145 } catch(OsmTransferException e) { 147 146 throw e; … … 152 151 } finally { 153 152 progressMonitor.finishTask(); 154 Utils.close(in);155 153 activeConnection = null; 156 154 } … … 165 163 */ 166 164 protected DataSet getReferringRelations(ProgressMonitor progressMonitor) throws OsmTransferException { 167 InputStream in = null;168 165 progressMonitor.beginTask(null, 2); 169 166 try { … … 173 170 .append("/").append(id).append("/relations"); 174 171 175 in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true)); 176 if (in == null) 177 return null; 178 progressMonitor.subTask(tr("Downloading referring relations ...")); 179 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, true)); 172 try (InputStream in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true))) { 173 if (in == null) 174 return null; 175 progressMonitor.subTask(tr("Downloading referring relations ...")); 176 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, true)); 177 } 180 178 } catch(OsmTransferException e) { 181 179 throw e; … … 186 184 } finally { 187 185 progressMonitor.finishTask(); 188 Utils.close(in);189 186 activeConnection = null; 190 187 } -
trunk/src/org/openstreetmap/josm/io/OsmServerChangesetReader.java
r7005 r7033 5 5 import static org.openstreetmap.josm.tools.I18n.trn; 6 6 7 import java.io.IOException; 7 8 import java.io.InputStream; 8 9 import java.text.MessageFormat; … … 12 13 import java.util.List; 13 14 15 import org.openstreetmap.josm.Main; 14 16 import org.openstreetmap.josm.data.osm.Changeset; 15 17 import org.openstreetmap.josm.data.osm.ChangesetDataSet; … … 53 55 public List<Changeset> queryChangesets(ChangesetQuery query, ProgressMonitor monitor) throws OsmTransferException { 54 56 CheckParameterUtil.ensureParameterNotNull(query, "query"); 57 List<Changeset> result = null; 55 58 if (monitor == null) { 56 59 monitor = NullProgressMonitor.INSTANCE; … … 60 63 StringBuilder sb = new StringBuilder(); 61 64 sb.append("changesets?").append(query.getQueryString()); 62 InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true)); 63 if (in == null) 64 return null; 65 monitor.indeterminateSubTask(tr("Downloading changesets ...")); 66 return OsmChangesetParser.parse(in, monitor.createSubTaskMonitor(1, true)); 65 try (InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true))) { 66 if (in == null) 67 return null; 68 monitor.indeterminateSubTask(tr("Downloading changesets ...")); 69 result = OsmChangesetParser.parse(in, monitor.createSubTaskMonitor(1, true)); 70 } catch (IOException e) { 71 Main.warn(e); 72 } 67 73 } catch(OsmTransferException e) { 68 74 throw e; … … 72 78 monitor.finishTask(); 73 79 } 80 return result; 74 81 } 75 82 … … 89 96 monitor = NullProgressMonitor.INSTANCE; 90 97 } 98 Changeset result = null; 91 99 try { 92 100 monitor.beginTask(tr("Reading changeset {0} ...",id)); 93 101 StringBuilder sb = new StringBuilder(); 94 102 sb.append("changeset/").append(id); 95 InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true)); 96 if (in == null) 97 return null; 98 monitor.indeterminateSubTask(tr("Downloading changeset {0} ...", id)); 99 List<Changeset> changesets = OsmChangesetParser.parse(in, monitor.createSubTaskMonitor(1, true)); 100 if (changesets == null || changesets.isEmpty()) 101 return null; 102 return changesets.get(0); 103 try (InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true))) { 104 if (in == null) 105 return null; 106 monitor.indeterminateSubTask(tr("Downloading changeset {0} ...", id)); 107 List<Changeset> changesets = OsmChangesetParser.parse(in, monitor.createSubTaskMonitor(1, true)); 108 if (changesets == null || changesets.isEmpty()) 109 return null; 110 result = changesets.get(0); 111 } catch (IOException e) { 112 Main.warn(e); 113 } 103 114 } catch(OsmTransferException e) { 104 115 throw e; … … 108 119 monitor.finishTask(); 109 120 } 121 return result; 110 122 } 111 123 … … 137 149 StringBuilder sb = new StringBuilder(); 138 150 sb.append("changeset/").append(id); 139 InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true)); 140 if (in == null) 141 return null; 142 monitor.indeterminateSubTask(tr("({0}/{1}) Downloading changeset {2} ...", i, ids.size(), id)); 143 List<Changeset> changesets = OsmChangesetParser.parse(in, monitor.createSubTaskMonitor(1, true)); 144 if (changesets == null || changesets.isEmpty()) { 145 continue; 151 try (InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true))) { 152 if (in == null) 153 return null; 154 monitor.indeterminateSubTask(tr("({0}/{1}) Downloading changeset {2} ...", i, ids.size(), id)); 155 List<Changeset> changesets = OsmChangesetParser.parse(in, monitor.createSubTaskMonitor(1, true)); 156 if (changesets == null || changesets.isEmpty()) { 157 continue; 158 } 159 ret.addAll(changesets); 160 } catch (IOException e) { 161 Main.warn(e); 146 162 } 147 ret.addAll(changesets);148 163 monitor.worked(1); 149 164 } … … 173 188 monitor = NullProgressMonitor.INSTANCE; 174 189 } 190 ChangesetDataSet result = null; 175 191 try { 176 192 monitor.beginTask(tr("Downloading changeset content")); 177 193 StringBuilder sb = new StringBuilder(); 178 194 sb.append("changeset/").append(id).append("/download"); 179 InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true)); 180 if (in == null) 181 return null; 182 monitor.setCustomText(tr("Downloading content for changeset {0} ...", id)); 183 OsmChangesetContentParser parser = new OsmChangesetContentParser(in); 184 return parser.parse(monitor.createSubTaskMonitor(1, true)); 195 try (InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true))) { 196 if (in == null) 197 return null; 198 monitor.setCustomText(tr("Downloading content for changeset {0} ...", id)); 199 OsmChangesetContentParser parser = new OsmChangesetContentParser(in); 200 result = parser.parse(monitor.createSubTaskMonitor(1, true)); 201 } catch (IOException e) { 202 Main.warn(e); 203 } 185 204 } catch(XmlParsingException e) { 186 205 throw new OsmTransferException(e); … … 188 207 monitor.finishTask(); 189 208 } 209 return result; 190 210 } 191 211 } -
trunk/src/org/openstreetmap/josm/io/OsmServerHistoryReader.java
r6822 r7033 12 12 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 13 13 import org.openstreetmap.josm.tools.CheckParameterUtil; 14 import org.openstreetmap.josm.tools.Utils;15 14 16 15 /** … … 56 55 */ 57 56 public HistoryDataSet parseHistory(ProgressMonitor progressMonitor) throws OsmTransferException { 58 InputStream in = null;59 57 progressMonitor.beginTask(""); 60 58 try { … … 64 62 .append("/").append(id).append("/history"); 65 63 66 in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true)); 67 if (in == null) 68 return null; 69 progressMonitor.indeterminateSubTask(tr("Downloading history...")); 70 final OsmHistoryReader reader = new OsmHistoryReader(in); 71 return reader.parse(progressMonitor.createSubTaskMonitor(1, true)); 64 try (InputStream in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true))) { 65 if (in == null) 66 return null; 67 progressMonitor.indeterminateSubTask(tr("Downloading history...")); 68 OsmHistoryReader reader = new OsmHistoryReader(in); 69 return reader.parse(progressMonitor.createSubTaskMonitor(1, true)); 70 } 72 71 } catch(OsmTransferException e) { 73 72 throw e; … … 78 77 } finally { 79 78 progressMonitor.finishTask(); 80 Utils.close(in);81 79 activeConnection = null; 82 80 } -
trunk/src/org/openstreetmap/josm/io/OsmServerObjectReader.java
r6830 r7033 14 14 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 15 15 import org.openstreetmap.josm.tools.CheckParameterUtil; 16 import org.openstreetmap.josm.tools.Utils;17 16 18 17 /** … … 116 115 } 117 116 progressMonitor.beginTask("", 1); 118 InputStream in = null;119 117 try { 120 118 progressMonitor.indeterminateSubTask(tr("Downloading OSM data...")); … … 129 127 } 130 128 131 in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true)); 132 if (in == null) 133 return null; 134 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 129 try (InputStream in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true))) { 130 if (in == null) 131 return null; 132 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 133 } 135 134 } catch(OsmTransferException e) { 136 135 if (cancel) return null; … … 141 140 } finally { 142 141 progressMonitor.finishTask(); 143 Utils.close(in);144 142 activeConnection = null; 145 143 } -
trunk/src/org/openstreetmap/josm/io/OsmServerReader.java
r6995 r7033 114 114 * @throws OsmTransferException thrown if data transfer errors occur 115 115 */ 116 @SuppressWarnings("resource") 116 117 protected InputStream getInputStreamRaw(String urlStr, ProgressMonitor progressMonitor, String reason, boolean uncompressAccordingToContentDisposition) throws OsmTransferException { 117 118 try { -
trunk/src/org/openstreetmap/josm/io/OsmServerUserInfoReader.java
r7005 r7033 167 167 monitor.beginTask(""); 168 168 monitor.indeterminateSubTask(tr("Reading user info ...")); 169 InputStream in = getInputStream("user/details", monitor.createSubTaskMonitor(1, true), reason); 170 return buildFromXML( 171 DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in) 172 ); 169 try (InputStream in = getInputStream("user/details", monitor.createSubTaskMonitor(1, true), reason)) { 170 return buildFromXML( 171 DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in) 172 ); 173 } 173 174 } catch(OsmTransferException e) { 174 175 throw e; -
trunk/src/org/openstreetmap/josm/io/WMSLayerExporter.java
r6070 r7033 10 10 import org.openstreetmap.josm.gui.layer.WMSLayer; 11 11 import org.openstreetmap.josm.tools.CheckParameterUtil; 12 import org.openstreetmap.josm.tools.Utils;13 12 14 13 /** … … 31 30 CheckParameterUtil.ensureParameterNotNull(layer, "layer"); 32 31 if (layer instanceof WMSLayer) { 33 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file)); 34 try { 32 try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file))) { 35 33 ((WMSLayer)layer).writeExternal(oos); 36 } finally {37 Utils.close(oos);38 34 } 39 35 } -
trunk/src/org/openstreetmap/josm/io/WMSLayerImporter.java
r6070 r7033 15 15 import org.openstreetmap.josm.gui.util.GuiHelper; 16 16 import org.openstreetmap.josm.tools.CheckParameterUtil; 17 import org.openstreetmap.josm.tools.Utils;18 17 19 18 /** … … 50 49 public void importData(File file, ProgressMonitor progressMonitor) throws IOException, IllegalDataException { 51 50 CheckParameterUtil.ensureParameterNotNull(file, "file"); 52 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file)); 53 try { 51 try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { 54 52 wmsLayer.readExternal(ois); 55 53 } catch (ClassNotFoundException e) { 56 54 throw new IllegalDataException(e); 57 } finally {58 Utils.close(ois);59 55 } 60 56 -
trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java
r7012 r7033 51 51 SAXParserFactory factory = SAXParserFactory.newInstance(); 52 52 factory.setNamespaceAware(true); 53 InputStream in = new MirroredInputStream(source); 54 InputSource is = new InputSource(UTFInputStreamReader.create(in)); 55 factory.newSAXParser().parse(is, parser); 56 return parser.entries; 53 try (InputStream in = new MirroredInputStream(source)) { 54 InputSource is = new InputSource(UTFInputStreamReader.create(in)); 55 factory.newSAXParser().parse(is, parser); 56 return parser.entries; 57 } 57 58 } catch (SAXException e) { 58 59 throw e; -
trunk/src/org/openstreetmap/josm/io/imagery/WMSGrabber.java
r7012 r7033 173 173 174 174 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 175 InputStream is = new ProgressInputStream(conn, null); 176 try { 175 try (InputStream is = new ProgressInputStream(conn, null)) { 177 176 Utils.copyStream(is, baos); 178 } finally {179 Utils.close(is);180 177 } 181 178 … … 190 187 StringBuilder exception = new StringBuilder(); 191 188 InputStream in = conn.getInputStream(); 192 BufferedReader br = new BufferedReader(new InputStreamReader(in, Utils.UTF_8)); 193 try { 189 try (BufferedReader br = new BufferedReader(new InputStreamReader(in, Utils.UTF_8))) { 194 190 String line = null; 195 191 while( (line = br.readLine()) != null) { … … 199 195 } 200 196 return exception.toString(); 201 } finally {202 Utils.close(br);203 197 } 204 198 } -
trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
r7030 r7033 140 140 Main.info("GET " + getCapabilitiesUrl.toString()); 141 141 URLConnection openConnection = Utils.openHttpConnection(getCapabilitiesUrl); 142 InputStream inputStream = openConnection.getInputStream();143 142 StringBuilder ba = new StringBuilder(); 144 try (BufferedReader br = new BufferedReader(UTFInputStreamReader.create(inputStream))) { 143 144 try ( 145 InputStream inputStream = openConnection.getInputStream(); 146 BufferedReader br = new BufferedReader(UTFInputStreamReader.create(inputStream)) 147 ) { 145 148 String line; 146 149 while ((line = br.readLine()) != null) { … … 178 181 return x.getTextContent(); 179 182 } 180 } 181 ),new Predicate<String>() {183 }), 184 new Predicate<String>() { 182 185 @Override 183 186 public boolean evaluate(String format) { … … 209 212 throw new WMSGetCapabilitiesException(e, incomingData); 210 213 } 211 212 214 } 213 215 -
trunk/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpServer.java
r6643 r7033 83 83 Integer.toString(server.getLocalPort())); 84 84 while (true) { 85 try { 86 Socket request = server.accept(); 85 try (Socket request = server.accept()) { 87 86 RequestProcessor.processRequest(request); 88 } catch (SocketException se) {89 if ( !server.isClosed())87 } catch (SocketException se) { 88 if (!server.isClosed()) 90 89 Main.error(se); 91 90 } catch (IOException ioe) { -
trunk/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpsServer.java
r7004 r7033 56 56 57 57 // Load keystore 58 InputStream in = RemoteControlHttpsServer.class.getResourceAsStream(KEYSTORE_PATH); 59 if (in == null) { 60 Main.error(tr("Unable to find JOSM keystore at {0}. Remote control will not be available on HTTPS.", KEYSTORE_PATH)); 61 } else { 62 try { 63 ks.load(in, password); 64 } finally { 65 Utils.close(in); 58 try (InputStream in = RemoteControlHttpsServer.class.getResourceAsStream(KEYSTORE_PATH)) { 59 if (in == null) { 60 Main.error(tr("Unable to find JOSM keystore at {0}. Remote control will not be available on HTTPS.", KEYSTORE_PATH)); 61 } else { 62 try { 63 ks.load(in, password); 64 } finally { 65 Utils.close(in); 66 } 67 68 if (Main.isDebugEnabled()) { 69 for (Enumeration<String> aliases = ks.aliases(); aliases.hasMoreElements();) { 70 Main.debug("Alias in keystore: "+aliases.nextElement()); 71 } 72 } 73 74 KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); 75 kmf.init(ks, password); 76 77 TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509"); 78 tmf.init(ks); 79 80 sslContext = SSLContext.getInstance("TLS"); 81 sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); 82 83 if (Main.isDebugEnabled()) { 84 Main.debug("SSL Context protocol: " + sslContext.getProtocol()); 85 Main.debug("SSL Context provider: " + sslContext.getProvider()); 86 } 87 88 initOK = true; 66 89 } 67 68 if (Main.isDebugEnabled()) {69 for (Enumeration<String> aliases = ks.aliases(); aliases.hasMoreElements();) {70 Main.debug("Alias in keystore: "+aliases.nextElement());71 }72 }73 74 KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");75 kmf.init(ks, password);76 77 TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");78 tmf.init(ks);79 80 sslContext = SSLContext.getInstance("TLS");81 sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);82 83 if (Main.isDebugEnabled()) {84 Main.debug("SSL Context protocol: " + sslContext.getProtocol());85 Main.debug("SSL Context provider: " + sslContext.getProvider());86 }87 88 initOK = true;89 90 } 90 91 } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | … … 175 176 Integer.toString(server.getLocalPort())); 176 177 while (true) { 177 try { 178 Socket request = server.accept(); 178 try (Socket request = server.accept()) { 179 179 if (Main.isDebugEnabled() && request instanceof SSLSocket) { 180 180 SSLSocket sslSocket = (SSLSocket) request; -
trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java
r7029 r7033 179 179 } 180 180 181 protected void addDataFile(OutputStream out) { 182 Writer writer = new OutputStreamWriter(out, Utils.UTF_8); 183 GpxWriter w = new GpxWriter(new PrintWriter(writer)); 184 w.write(layer.data); 185 w.flush(); 181 protected void addDataFile(OutputStream out) throws IOException { 182 try ( 183 Writer writer = new OutputStreamWriter(out, Utils.UTF_8); 184 GpxWriter w = new GpxWriter(new PrintWriter(writer)) 185 ) { 186 w.write(layer.data); 187 w.flush(); 188 } 186 189 } 187 188 190 } -
trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionImporter.java
r6087 r7033 37 37 } 38 38 39 InputStream in = support.getInputStream(fileStr); 40 GpxImporter.GpxImporterData importData = GpxImporter.loadLayers(in, support.getFile(fileStr), support.getLayerName(), null, progressMonitor); 41 42 support.addPostLayersTask(importData.getPostLayerTask()); 43 return importData.getGpxLayer(); 39 try (InputStream in = support.getInputStream(fileStr)) { 40 GpxImporter.GpxImporterData importData = GpxImporter.loadLayers(in, support.getFile(fileStr), support.getLayerName(), null, progressMonitor); 41 42 support.addPostLayersTask(importData.getPostLayerTask()); 43 return importData.getGpxLayer(); 44 } 44 45 45 46 } catch (XPathExpressionException e) { … … 47 48 } 48 49 } 49 50 50 } -
trunk/src/org/openstreetmap/josm/io/session/MarkerSessionExporter.java
r7029 r7033 84 84 } 85 85 86 protected void addDataFile(OutputStream out) { 87 Writer writer = new OutputStreamWriter(out, Utils.UTF_8); 88 MarkerWriter w = new MarkerWriter(new PrintWriter(writer)); 89 w.write(layer); 90 w.flush(); 86 protected void addDataFile(OutputStream out) throws IOException { 87 try ( 88 Writer writer = new OutputStreamWriter(out, Utils.UTF_8); 89 MarkerWriter w = new MarkerWriter(new PrintWriter(writer)) 90 ) { 91 w.write(layer); 92 w.flush(); 93 } 91 94 } 92 95 -
trunk/src/org/openstreetmap/josm/io/session/MarkerSessionImporter.java
r6093 r7033 41 41 } 42 42 43 InputStream in = support.getInputStream(fileStr); 44 GpxImporter.GpxImporterData importData = GpxImporter.loadLayers(in, support.getFile(fileStr), support.getLayerName(), null, progressMonitor); 45 46 support.addPostLayersTask(importData.getPostLayerTask()); 47 48 GpxLayer gpxLayer = null; 49 List<SessionReader.LayerDependency> deps = support.getLayerDependencies(); 50 if (!deps.isEmpty()) { 51 Layer layer = deps.iterator().next().getLayer(); 52 if (layer instanceof GpxLayer) { 53 gpxLayer = (GpxLayer) layer; 43 try (InputStream in = support.getInputStream(fileStr)) { 44 GpxImporter.GpxImporterData importData = GpxImporter.loadLayers(in, support.getFile(fileStr), support.getLayerName(), null, progressMonitor); 45 46 support.addPostLayersTask(importData.getPostLayerTask()); 47 48 GpxLayer gpxLayer = null; 49 List<SessionReader.LayerDependency> deps = support.getLayerDependencies(); 50 if (!deps.isEmpty()) { 51 Layer layer = deps.iterator().next().getLayer(); 52 if (layer instanceof GpxLayer) { 53 gpxLayer = (GpxLayer) layer; 54 } 54 55 } 56 57 MarkerLayer markerLayer = importData.getMarkerLayer(); 58 markerLayer.fromLayer = gpxLayer; 59 60 return markerLayer; 55 61 } 56 57 MarkerLayer markerLayer = importData.getMarkerLayer();58 markerLayer.fromLayer = gpxLayer;59 60 return markerLayer;61 62 62 } catch (XPathExpressionException e) { 63 63 throw new RuntimeException(e); -
trunk/src/org/openstreetmap/josm/io/session/OsmDataSessionExporter.java
r7029 r7033 212 212 } 213 213 214 protected void addDataFile(OutputStream out) { 215 Writer writer = new OutputStreamWriter(out, Utils.UTF_8); 216 OsmWriter w = OsmWriterFactory.createOsmWriter(new PrintWriter(writer), false, layer.data.getVersion()); 217 layer.data.getReadLock().lock(); 218 try { 219 w.writeLayer(layer); 220 w.flush(); 221 } finally { 222 layer.data.getReadLock().unlock(); 214 protected void addDataFile(OutputStream out) throws IOException { 215 try ( 216 Writer writer = new OutputStreamWriter(out, Utils.UTF_8); 217 OsmWriter w = OsmWriterFactory.createOsmWriter(new PrintWriter(writer), false, layer.data.getVersion()) 218 ) { 219 layer.data.getReadLock().lock(); 220 try { 221 w.writeLayer(layer); 222 w.flush(); 223 } finally { 224 layer.data.getReadLock().unlock(); 225 } 223 226 } 224 227 } -
trunk/src/org/openstreetmap/josm/io/session/OsmDataSessionImporter.java
r6087 r7033 39 39 40 40 OsmImporter importer = new OsmImporter(); 41 InputStream in = support.getInputStream(fileStr);42 OsmImporter.OsmImporterData importData = importer.loadLayer(in, support.getFile(fileStr), support.getLayerName(), progressMonitor);43 44 support.addPostLayersTask(importData.getPostLayerTask());45 return importData.getLayer();46 41 try (InputStream in = support.getInputStream(fileStr)) { 42 OsmImporter.OsmImporterData importData = importer.loadLayer(in, support.getFile(fileStr), support.getLayerName(), progressMonitor); 43 44 support.addPostLayersTask(importData.getPostLayerTask()); 45 return importData.getLayer(); 46 } 47 47 } catch (XPathExpressionException e) { 48 48 throw new RuntimeException(e); -
trunk/src/org/openstreetmap/josm/io/session/SessionReader.java
r7005 r7033 553 553 } 554 554 555 InputStream josIS = null; 556 555 try (InputStream josIS = createInputStream(sessionFile, zip)) { 556 loadSession(josIS, sessionFile.toURI(), zip, progressMonitor); 557 } 558 } 559 560 private InputStream createInputStream(File sessionFile, boolean zip) throws IOException, IllegalDataException { 557 561 if (zip) { 558 562 try { 559 563 zipFile = new ZipFile(sessionFile); 560 josIS =getZipInputStream(zipFile);564 return getZipInputStream(zipFile); 561 565 } catch (ZipException ze) { 562 566 throw new IOException(ze); … … 564 568 } else { 565 569 try { 566 josIS =new FileInputStream(sessionFile);570 return new FileInputStream(sessionFile); 567 571 } catch (FileNotFoundException ex) { 568 572 throw new IOException(ex); 569 573 } 570 574 } 571 572 loadSession(josIS, sessionFile.toURI(), zip, progressMonitor);573 575 } 574 576 -
trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java
r7005 r7033 240 240 241 241 public void write(File f) throws IOException { 242 OutputStream out = null; 243 try { 244 out = new FileOutputStream(f); 242 try (OutputStream out = new FileOutputStream(f)) { 243 write(out); 245 244 } catch (FileNotFoundException e) { 246 245 throw new IOException(e); 247 246 } 248 write(out);249 247 } 250 248 … … 262 260 writeJos(doc, new BufferedOutputStream(out)); 263 261 } 264 Utils.close(out);265 262 } 266 263 }
Note:
See TracChangeset
for help on using the changeset viewer.