Changeset 8788 in josm for trunk/src/org


Ignore:
Timestamp:
2015-09-22T23:13:53+02:00 (9 years ago)
Author:
simon04
Message:

fix #10947 - "No data found in this area." message when Overpass query times out

Detect "runtime error" in the <remark> element of the returned XML.

Location:
trunk/src/org/openstreetmap/josm/io
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java

    r8787 r8788  
    126126    }
    127127
     128    /**
     129     * Parse the given input source and return the dataset.
     130     *
     131     * @see OsmReader#parseDataSet(InputStream, ProgressMonitor)
     132     */
     133    protected DataSet parseDataSet(InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException {
     134        return OsmReader.parseDataSet(source, progressMonitor);
     135    }
     136
    128137    @Override
    129138    public DataSet parseOsm(ProgressMonitor progressMonitor) throws OsmTransferException {
     
    140149                    if (in == null)
    141150                        return null;
    142                     ds = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false));
     151                    ds = parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false));
    143152                }
    144153
     
    147156                    if (in == null)
    148157                        return null;
    149                     ds2 = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false));
     158                    ds2 = parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false));
    150159                }
    151160                if (ds2 == null)
     
    159168                    if (in == null)
    160169                        return null;
    161                     ds = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false));
     170                    ds = parseDataSet(in, progressMonitor.createSubTaskMonitor(1, false));
    162171                }
    163172            }
  • trunk/src/org/openstreetmap/josm/io/OverpassDownloadReader.java

    r8787 r8788  
    55
    66import java.io.InputStream;
     7
     8import javax.xml.stream.XMLStreamConstants;
     9import javax.xml.stream.XMLStreamException;
    710
    811import org.openstreetmap.josm.data.Bounds;
     
    107110
    108111    @Override
     112    protected DataSet parseDataSet(InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException {
     113        return new OsmReader() {
     114            @Override
     115            protected void parseUnknown(boolean printWarning) throws XMLStreamException {
     116                if ("remark".equals(parser.getLocalName())) {
     117                    if (parser.getEventType() == XMLStreamConstants.START_ELEMENT) {
     118                        final String text = parser.getElementText();
     119                        if (text.contains("runtime error")) {
     120                            throw new XMLStreamException(text);
     121                        }
     122                    }
     123                }
     124                super.parseUnknown(printWarning);
     125            }
     126        }.doParseDataSet(source, progressMonitor);
     127    }
     128
     129    @Override
    109130    public DataSet parseOsm(ProgressMonitor progressMonitor) throws OsmTransferException {
    110131
Note: See TracChangeset for help on using the changeset viewer.