fix for expires-problem

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@485 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 20 years ago
parent 508599eeb3
commit fb6f238d70

@ -174,7 +174,7 @@ public final class httpHeader extends TreeMap implements Map {
http1_1.put("504","Gateway Time-out");
http1_1.put("505","HTTP Version not supported");
}
private final HashMap reverseMappingCache;
private static final Collator insensitiveCollator = Collator.getInstance(Locale.US);
@ -333,7 +333,7 @@ public final class httpHeader extends TreeMap implements Map {
}
private Date headerDate(String kind) {
if (containsKey(kind)) return parseHTTPDate((String) get(kind));
if (containsKey(kind)) return new Date(parseHTTPDate((String) get(kind)).getTime());
else return null;
}

@ -59,6 +59,9 @@ import java.util.Date;
import java.util.LinkedList;
import java.util.Map;
import java.util.TreeMap;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import de.anomic.htmlFilter.htmlFilterContentScraper;
import de.anomic.http.httpHeader;
@ -69,6 +72,7 @@ import de.anomic.kelondro.kelondroMap;
import de.anomic.server.serverFileUtils;
import de.anomic.server.serverInstantThread;
import de.anomic.server.logging.serverLog;
import de.anomic.server.serverDate;
import de.anomic.tools.enumerateFiles;
public final class plasmaHTCache {
@ -680,8 +684,11 @@ public final class plasmaHTCache {
// -expires in cached response
// the expires value gives us a very easy hint when the cache is stale
if (expires != null) {
Date yesterday = new Date((new Date()).getTime() - oneday);
if (expires.before(yesterday)) return false;
//Date yesterday = new Date((new Date()).getTime() - oneday);
//long now = new GregorianCalendar(TimeZone.getTimeZone("GMT+0")).getTimeInMillis();
//System.out.println("EXPIRES-TEST: expires=" + expires.getTime()) + ", NOW=" + now + ", System.currentTimeMillis=" + System.currentTimeMillis() + ", url=" + url);
System.out.println("EXPIRES-TEST: expires=" + expires + ", NOW=" + serverDate.correctedGMTDate() + ", url=" + url);
if (expires.before(serverDate.correctedGMTDate())) return false;
}
// -lastModified in cached response
@ -731,4 +738,21 @@ public final class plasmaHTCache {
}
/*
public static void main(String[] args) {
//String[] s = TimeZone.getAvailableIDs();
//for (int i = 0; i < s.length; i++) System.out.println("ZONE=" + s[i]);
Calendar c = GregorianCalendar.getInstance();
int zoneOffset = c.get(Calendar.ZONE_OFFSET)/(60*60*1000);
int DSTOffset = c.get(Calendar.DST_OFFSET)/(60*60*1000);
System.out.println("This Offset = " + (zoneOffset + DSTOffset));
for (int i = 0; i < 12; i++) {
c = new GregorianCalendar(TimeZone.getTimeZone("Etc/GMT-" + i));
//c.setTimeZone(TimeZone.getTimeZone("Etc/GMT+0"));
System.out.println("Zone offset: "+
c.get(Calendar.ZONE_OFFSET)/(60*60*1000));
System.out.println(c.get(GregorianCalendar.HOUR) + ", " + c.getTime() + ", " + c.getTimeInMillis());
}
}
**/
}

@ -68,6 +68,12 @@ public final class serverDate {
private final static String[] wkday = {"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
private final static String[] month = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
// find out time zone and DST offset
private static Calendar thisCalendar = GregorianCalendar.getInstance();
private static long zoneOffsetHours = thisCalendar.get(Calendar.ZONE_OFFSET);
private static long DSTOffsetHours = thisCalendar.get(Calendar.DST_OFFSET);
private static long offsetHours = zoneOffsetHours + DSTOffsetHours; // this must be subtracted from current Date().getTime() to produce a GMT Time
// pre-calculation of time tables
private final static long[] dimnormalacc, dimleapacc;
private static long[] utimeyearsacc;
@ -96,6 +102,10 @@ public final class serverDate {
private int milliseconds, seconds, minutes, hours, days, months, years; // years since 1970
private int dow; // day-of-week
private long utime;
public static Date correctedGMTDate() {
return new Date(System.currentTimeMillis() - offsetHours);
}
public serverDate() {
this(System.currentTimeMillis());
@ -253,6 +263,7 @@ public final class serverDate {
public static void main(String[] args) {
//System.out.println("kelondroDate is (" + new kelondroDate().toString() + ")");
System.out.println("offset is " + (offsetHours/1000/60/60/24) + " hours, javaDate is " + new Date() + ", correctedDate is " + correctedGMTDate());
System.out.println("serverDate : " + new serverDate().toShortString(false));
System.out.println(" javaDate : " + testSDateShortString());
System.out.println("serverDate : " + new serverDate().toString());

@ -127,7 +127,7 @@ public class yacyCore {
}
public static Date parseUniversalDate(String remoteTimeString) {
if (remoteTimeString == null) return new Date();
if ((remoteTimeString == null) || (remoteTimeString.length() == 0)) return new Date();
try {
return yacyCore.shortFormatter.parse(remoteTimeString);
} catch (java.text.ParseException e) {

@ -163,7 +163,7 @@ public class yacyNewsPool {
return true;
}
if ((record.category().equals("crwlstrt")) &&
(yacyCore.universalTime() - record.created().getTime() > 1000 * 60 * 60 /* 1 Hour */)) {
(yacyCore.universalTime() - record.created().getTime() > 1000 * 60 * 60 * 24 * 7 /* 1 Week */)) {
yacySeed seed = yacyCore.seedDB.get(record.originator());
try {
return (Integer.parseInt(seed.get("ISpeed", "-")) < 10);

Loading…
Cancel
Save