Changeset 1141 for OAIHarvester


Ignore:
Timestamp:
02/22/11 15:29:58 (13 years ago)
Author:
oschonef
Message:
  • parse Retry-After header according to RFC 2616
File:
1 edited

Legend:

Unmodified
Added
Removed
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl/HarvestWorker.java

    r1140 r1141  
    1414import org.apache.http.client.methods.HttpGet;
    1515import org.apache.http.impl.client.DefaultHttpClient;
     16import org.apache.http.impl.cookie.DateParseException;
     17import org.apache.http.impl.cookie.DateUtils;
    1618import org.apache.http.params.CoreConnectionPNames;
    1719import org.apache.http.params.CoreProtocolPNames;
     
    425427
    426428    private long parseTryAfter(HttpResponse response) {
     429        long delay = -1;
    427430        final Header s = response.getFirstHeader("Retry-After");
    428431        if (s != null) {
    429432            final String v = s.getValue();
    430433            try {
    431                 return Long.parseLong(v);
     434                delay = Long.parseLong(v);
    432435            } catch (NumberFormatException e) {
    433                 /* IGNORE */
    434             }
    435         }
    436         return 1000;
     436                try {
     437                    Date date = DateUtils.parseDate(v);
     438                    delay = date.getTime() - System.currentTimeMillis();
     439                } catch (DateParseException f) {
     440                    /* IGNORE */
     441                }
     442            }
     443        }
     444        return (delay > 0) ? delay : 0;
    437445    }
    438446
Note: See TracChangeset for help on using the changeset viewer.