Changeset 7033 in josm for trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java
- Timestamp:
- 2014-05-01T02:34:43+02:00 (10 years ago)
- File:
-
- 1 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 }
Note:
See TracChangeset
for help on using the changeset viewer.