Skip to content

Commit 393fc2b

Browse files
committed
2 parents defc7ee + db056b8 commit 393fc2b

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

services/azure-servicebus/src/main/java/com/microsoft/windowsazure/services/servicebus/implementation/BrokerPropertiesMapper.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@
1717
import java.io.IOException;
1818
import java.io.StringWriter;
1919
import java.io.Writer;
20+
import java.text.DateFormat;
2021
import java.text.SimpleDateFormat;
2122
import java.util.Locale;
23+
import java.util.TimeZone;
2224

2325
import org.codehaus.jackson.JsonGenerationException;
2426
import org.codehaus.jackson.JsonParseException;
@@ -30,9 +32,7 @@ public class BrokerPropertiesMapper {
3032
public BrokerProperties fromString(String value) {
3133

3234
ObjectMapper mapper = new ObjectMapper();
33-
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
34-
"EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US);
35-
mapper.setDateFormat(simpleDateFormat);
35+
mapper.setDateFormat(getRFC2616DateFormatter());
3636
try {
3737
return mapper.readValue(value.getBytes("UTF-8"),
3838
BrokerProperties.class);
@@ -47,6 +47,7 @@ public BrokerProperties fromString(String value) {
4747

4848
public String toString(BrokerProperties value) {
4949
ObjectMapper mapper = new ObjectMapper();
50+
mapper.setDateFormat(getRFC2616DateFormatter());
5051
Writer writer = new StringWriter();
5152
try {
5253
mapper.writeValue(writer, value);
@@ -59,5 +60,12 @@ public String toString(BrokerProperties value) {
5960
}
6061
return writer.toString();
6162
}
63+
64+
private DateFormat getRFC2616DateFormatter() {
65+
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
66+
"EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US);
67+
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
68+
return simpleDateFormat;
69+
}
6270

6371
}

services/azure-servicebus/src/test/java/com/microsoft/windowsazure/services/servicebus/BrokerPropertiesMapperTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,21 @@ public void deserializeDateInZhCnLocaleCorrectly() {
192192
- lockedUntilUtc.getTime();
193193
assertTrue(Math.abs(lockedUntilDelta) < 2000);
194194
}
195+
196+
@Test
197+
public void dateSerializeCorrectlyToRFC2616() {
198+
// Arrange
199+
BrokerPropertiesMapper mapper = new BrokerPropertiesMapper();
200+
Date date = new Date(1432120118000L);
201+
202+
// Act
203+
BrokerProperties properties = new BrokerProperties();
204+
properties.setScheduledEnqueueTimeUtc(date);
205+
String json = mapper.toString(properties);
206+
207+
// Assert
208+
assertNotNull(json);
209+
assertEquals("{\"ScheduledEnqueueTimeUtc\":\"Wed, 20 May 2015 11:08:38 GMT\"}", json);
210+
211+
}
195212
}

0 commit comments

Comments
 (0)