Round trip serialize/deserialize with XStream appears to subtract a day from a LocalDate. My workaround for this is to use a custom converter for LocalDate that formats/parses the LocalDate as a String.
My main concern is whether this is exposing a problem in either JodaTime or XStream that could affect other code.
final LocalDate ld0 = new LocalDate(2008,07,03); final XStream xs = new XStream(); final String xml0 = xs.toXML(ld0); final LocalDate ld1 = (LocalDate) xs.fromXML(xml0); final String xml1 = xs.toXML(ld1); final LocalDate ld2 = (LocalDate) xs.fromXML(xml1); System.out.println(ld0 + '\n' + xml0 + '\n' + ld1 + '\n' + xml1 + '\n' + ld2);
produces (note the second serialize/deserialize round trip preserves the date):