Ignore:
Timestamp:
2020-04-25T10:01:42+02:00 (5 years ago)
Author:
simon04
Message:

fix #josm19146 - fix exception when parsing invalid dates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/http2/src/org/openstreetmap/josm/plugins/http2/Http2Client.java

    r35356 r35427  
    1313import java.net.http.HttpResponse;
    1414import java.net.http.HttpResponse.BodyHandlers;
     15import java.time.DateTimeException;
    1516import java.time.Duration;
    1617import java.time.Instant;
     
    175176        @Override
    176177        public long getExpiration() {
    177             return response.headers().firstValue("Expires")
    178                     .map(DateTimeFormatter.RFC_1123_DATE_TIME::parse)
    179                     .map(t -> 1000L * t.getLong(ChronoField.INSTANT_SECONDS))
    180                     .orElse(0L);
     178            return parseDate(response.headers().firstValue("Expires").orElse(null));
    181179        }
    182180
    183181        @Override
    184182        public long getLastModified() {
    185             return response.headers().firstValue("Last-Modified")
    186                     .map(DateTimeFormatter.RFC_1123_DATE_TIME::parse)
    187                     .map(t -> 1000L * t.getLong(ChronoField.INSTANT_SECONDS))
    188                     .orElse(0L);
     183            return parseDate(response.headers().firstValue("Last-Modified").orElse(null));
     184        }
     185
     186        static long parseDate(String string) {
     187            if (string != null) {
     188                try {
     189                    return DateTimeFormatter.RFC_1123_DATE_TIME.parse(string).getLong(ChronoField.INSTANT_SECONDS) * 1000L;
     190                } catch (DateTimeException e) {
     191                    Logging.debug(e);
     192                }
     193            }
     194            return 0L;
    189195        }
    190196
Note: See TracChangeset for help on using the changeset viewer.