Index: src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jReaderGenerator.java =================================================================== --- src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jReaderGenerator.java (revision 612) +++ src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jReaderGenerator.java (working copy) @@ -111,6 +111,8 @@ jClass.addImport( "java.io.Reader" ); jClass.addImport( "java.util.Date" ); + + jClass.addImport( "java.util.Locale" ); jClass.addImport( "java.text.DateFormat" ); @@ -172,10 +174,11 @@ unmarshall.addException( new JClass( "DocumentException" ) ); sc = unmarshall.getSourceCode(); + sc.add( "return read( reader, true );" ); jClass.addMethod( unmarshall ); - + // ---------------------------------------------------------------------- // Write the class parsers // ---------------------------------------------------------------------- @@ -1073,7 +1076,7 @@ sc.indent(); - sc.add( "DateFormat dateParser = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL );" ); + sc.add( "DateFormat dateParser = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL , Locale.US );" ); sc.add( "dateParser.setLenient( true );" ); Index: src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jWriterGenerator.java =================================================================== --- src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jWriterGenerator.java (revision 612) +++ src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jWriterGenerator.java (working copy) @@ -112,6 +112,8 @@ jClass.addImport( "java.util.Arrays" ); jClass.addImport( "java.util.Iterator" ); + + jClass.addImport( "java.util.Locale" ); jClass.addImport( "java.text.DateFormat" ); @@ -479,7 +481,7 @@ if ( "Date".equals( type ) ) { textValue = - "DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL ).format( " + textValue + " )"; + "DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL , Locale.US ).format( " + textValue + " )"; } else if ( !"String".equals( type ) ) { Index: src/test/verifiers/dom4j/Dom4jVerifier.java =================================================================== --- src/test/verifiers/dom4j/Dom4jVerifier.java (revision 612) +++ src/test/verifiers/dom4j/Dom4jVerifier.java (working copy) @@ -43,9 +43,13 @@ import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; +import java.text.DateFormat; +import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Locale; import java.util.Properties; +import java.util.TimeZone; /** * @author Trygve Laugstøl @@ -66,6 +70,8 @@ verifyReaderDuplicates(); + TimeZone.setDefault(TimeZone.getTimeZone("America/New_York")); + verifyWriter(); } @@ -254,6 +260,32 @@ writer.write( buffer, actual ); Assert.assertEquals( expectedXml.trim(), buffer.toString().trim() ); + + // ---------------------------------------------------------------------- + // Test that dates are correctly read back from xml + // ---------------------------------------------------------------------- + + StringBuffer dateXml = new StringBuffer(); + dateXml.append("\n\n"); + dateXml.append("Friday, January 6, 2006 12:00:00 AM EST\n"); + dateXml.append("\n"); + + expected = new Model(); + + typeTester = new TypeTester(); + + Calendar calendar = Calendar.getInstance(); + + calendar.clear(); + calendar.set(2006,01,06,12,0); + + typeTester.setDate(calendar.getTime()); + + expected.setTypeTester(typeTester); + + actual = reader.read( new StringReader( dateXml.toString() ) ); + + assertModel( expected, actual ); } public void verifyReader() Index: src/test/verifiers/dom4j/expected.xml =================================================================== --- src/test/verifiers/dom4j/expected.xml (revision 612) +++ src/test/verifiers/dom4j/expected.xml (working copy) @@ -8,7 +8,7 @@ 3 4.5 5.6 - Friday, 6 January 2006 12:00:00 AM EST + Friday, January 6, 2006 12:00:00 AM EST Maven