Skip to content

Commit 8738fd7

Browse files
committed
SPR-6177 - HttpHeadersTests fails with non-english locale
1 parent 74f4749 commit 8738fd7

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

org.springframework.web/src/main/java/org/springframework/http/HttpHeaders.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ private long getFirstDate(String headerName) {
447447
}
448448

449449
private void setDate(String headerName, long date) {
450-
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMATS[0]);
450+
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMATS[0], Locale.US);
451451
dateFormat.setTimeZone(GMT);
452452
set(headerName, dateFormat.format(new Date(date)));
453453
}

org.springframework.web/src/test/java/org/springframework/http/HttpHeadersTests.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,14 @@
2424
import java.util.EnumSet;
2525
import java.util.GregorianCalendar;
2626
import java.util.List;
27+
import java.util.Locale;
2728
import java.util.TimeZone;
2829

2930
import static org.junit.Assert.*;
3031
import org.junit.Before;
3132
import org.junit.Test;
3233

33-
/**
34-
* @author Arjen Poutsma
35-
*/
34+
/** @author Arjen Poutsma */
3635
public class HttpHeadersTests {
3736

3837
private HttpHeaders headers;
@@ -126,7 +125,6 @@ public void ifNoneMatchList() {
126125
assertEquals("Invalid If-None-Match header", "\"v2.6\", \"v2.7\"", headers.getFirst("If-None-Match"));
127126
}
128127

129-
130128
@Test
131129
public void date() {
132130
Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20);
@@ -147,16 +145,34 @@ public void dateInvalid() {
147145
headers.getDate();
148146
}
149147

148+
@Test
149+
public void dateOtherLocale() {
150+
Locale defaultLocale = Locale.getDefault();
151+
try {
152+
Locale.setDefault(new Locale("nl", "nl"));
153+
Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20);
154+
calendar.setTimeZone(TimeZone.getTimeZone("CET"));
155+
long date = calendar.getTimeInMillis();
156+
headers.setDate(date);
157+
assertEquals("Invalid Date header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("date"));
158+
assertEquals("Invalid Date header", date, headers.getDate());
159+
}
160+
finally {
161+
Locale.setDefault(defaultLocale);
162+
}
163+
}
164+
150165
@Test
151166
public void lastModified() {
152167
Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20);
153168
calendar.setTimeZone(TimeZone.getTimeZone("CET"));
154169
long date = calendar.getTimeInMillis();
155170
headers.setLastModified(date);
156171
assertEquals("Invalid Last-Modified header", date, headers.getLastModified());
157-
assertEquals("Invalid Last-Modified header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("last-modified"));
172+
assertEquals("Invalid Last-Modified header", "Thu, 18 Dec 2008 10:20:00 GMT",
173+
headers.getFirst("last-modified"));
158174
}
159-
175+
160176
@Test
161177
public void expires() {
162178
Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20);
@@ -174,7 +190,8 @@ public void ifModifiedSince() {
174190
long date = calendar.getTimeInMillis();
175191
headers.setIfModifiedSince(date);
176192
assertEquals("Invalid If-Modified-Since header", date, headers.getIfNotModifiedSince());
177-
assertEquals("Invalid If-Modified-Since header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("if-modified-since"));
193+
assertEquals("Invalid If-Modified-Since header", "Thu, 18 Dec 2008 10:20:00 GMT",
194+
headers.getFirst("if-modified-since"));
178195
}
179196

180197
@Test
@@ -194,5 +211,4 @@ public void cacheControl() {
194211
}
195212

196213

197-
198214
}

0 commit comments

Comments
 (0)