Author: alexlehm Date: 2007-11-06 23:52:14 +0000 (Tue, 06 Nov 2007) New Revision: 15701
Modified: trunk/apps/Freemail/src/freemail/MailHeaderFilter.java Log: fix sdf format to use proper locale and gmt timezone, this fixes the following bugs: https://bugs.freenetproject.org/view.php?id=1762 (rewriting the date header to gmt doesn't work) https://bugs.freenetproject.org/view.php?id=1505 (Exception: "couldn't parse date" when sending mail) Modified: trunk/apps/Freemail/src/freemail/MailHeaderFilter.java =================================================================== --- trunk/apps/Freemail/src/freemail/MailHeaderFilter.java 2007-11-06 01:04:49 UTC (rev 15700) +++ trunk/apps/Freemail/src/freemail/MailHeaderFilter.java 2007-11-06 23:52:14 UTC (rev 15701) @@ -32,8 +32,8 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; -import java.util.Calendar; import java.text.ParseException; +import java.util.Locale; class MailHeaderFilter { private final BufferedReader reader; @@ -41,12 +41,14 @@ private boolean foundEnd; private static final SimpleDateFormat sdf; private static final TimeZone gmt; - private static final Calendar cal; + // TODO: according to javadoc, SimpleDateFormat objects are not synchronized, + // should this be taken into account? + static { - sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); + sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US); gmt = TimeZone.getTimeZone("GMT"); - cal = Calendar.getInstance(gmt); + sdf.setTimeZone(gmt); } public MailHeaderFilter(BufferedReader rdr) { @@ -125,9 +127,7 @@ System.out.println("Warning: couldn't parse date: "+val+" (got null)"); return null; } - cal.setTime(d); - cal.setTimeZone(gmt); - return sdf.format(cal.getTime()); + return sdf.format(d); } else if (name.equalsIgnoreCase("User-Agent")) { // might as well hide this return null;
