Ignore:
Timestamp:
2016-01-11T19:07:11+01:00 (8 years ago)
Author:
simon04
Message:

see #8824 - Fail fast when initializing imagery entries while starting

Use a short HTTP connect timeout of 1s for fetching the entries

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

Legend:

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

    r9411 r9414  
    6969    protected CachingStrategy cachingStrategy;
    7070
     71    private transient boolean fastFail;
    7172    private transient HttpClient activeConnection;
    7273    protected File cacheFile;
     
    159160        this.httpHeaders.putAll(headers);
    160161        return this;
     162    }
     163
     164    /**
     165     * Sets whether opening HTTP connections should fail fast, i.e., whether a
     166     * {@link HttpClient#setConnectTimeout(int) low connect timeout} should be used.
     167     * @param fastFail whether opening HTTP connections should fail fast
     168     */
     169    public void setFastFail(boolean fastFail) {
     170        this.fastFail = fastFail;
    161171    }
    162172
     
    433443                    .setIfModifiedSince(ifModifiedSince == null ? 0L : ifModifiedSince)
    434444                    .setHeaders(httpHeaders);
     445            if (fastFail) {
     446                activeConnection.setReadTimeout(1000);
     447            }
    435448            final HttpClient.Response con = activeConnection.connect();
    436449            if (ifModifiedSince != null && con.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED) {
  • trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java

    r9412 r9414  
    2121import org.openstreetmap.josm.data.imagery.Shape;
    2222import org.openstreetmap.josm.io.CachedFile;
    23 import org.openstreetmap.josm.io.UTFInputStreamReader;
     23import org.openstreetmap.josm.tools.HttpClient;
    2424import org.openstreetmap.josm.tools.LanguageInfo;
    2525import org.openstreetmap.josm.tools.Utils;
     
    3333    private final String source;
    3434    private transient CachedFile cachedFile;
     35    private transient boolean fastFail;
    3536
    3637    private enum State {
     
    5657        try {
    5758            cachedFile = new CachedFile(source);
     59            cachedFile.setFastFail(fastFail);
    5860            try (BufferedReader in = cachedFile
    5961                    .setMaxAge(CachedFile.DAYS)
     
    359361    }
    360362
     363    /**
     364     * Sets whether opening HTTP connections should fail fast, i.e., whether a
     365     * {@link HttpClient#setConnectTimeout(int) low connect timeout} should be used.
     366     * @param fastFail whether opening HTTP connections should fail fast
     367     * @see CachedFile#setFastFail(boolean)
     368     */
     369    public void setFastFail(boolean fastFail) {
     370        this.fastFail = fastFail;
     371    }
     372
    361373    @Override
    362374    public void close() throws IOException {
Note: See TracChangeset for help on using the changeset viewer.