diff --git a/CHANGELOG.md b/CHANGELOG.md index efa61d8..2dcb39c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,15 @@ # toml4j Changelog -## 0.6.0 / 2016-05-09 +## 0.6.0 / 2016-06-14 ## Added * Toml#toMap() convenience method (thanks to __[andytill](https://github.com/andytill)__ and __[Gyscos](https://github.com/Gyscos)) +## Fixed + +* Transient fields are not written to TOML files (thanks to __[lare96](https://github.com/lare96)__) + ## 0.5.1 / 2016-01-24 ### Fixed diff --git a/src/main/java/com/moandjiezana/toml/ObjectValueWriter.java b/src/main/java/com/moandjiezana/toml/ObjectValueWriter.java index 9bd08c3..1295778 100644 --- a/src/main/java/com/moandjiezana/toml/ObjectValueWriter.java +++ b/src/main/java/com/moandjiezana/toml/ObjectValueWriter.java @@ -50,7 +50,7 @@ class ObjectValueWriter implements ValueWriter { Iterator iterator = fields.iterator(); while (iterator.hasNext()) { Field field = iterator.next(); - if ((Modifier.isFinal(field.getModifiers()) && Modifier.isStatic(field.getModifiers())) || field.isSynthetic()) { + if ((Modifier.isFinal(field.getModifiers()) && Modifier.isStatic(field.getModifiers())) || field.isSynthetic() || Modifier.isTransient(field.getModifiers())) { iterator.remove(); } } diff --git a/src/test/java/com/moandjiezana/toml/TomlWriterTest.java b/src/test/java/com/moandjiezana/toml/TomlWriterTest.java index 8794a18..44fc986 100644 --- a/src/test/java/com/moandjiezana/toml/TomlWriterTest.java +++ b/src/test/java/com/moandjiezana/toml/TomlWriterTest.java @@ -455,6 +455,11 @@ public class TomlWriterTest { private static class SimpleTestClass { int a = 1; } + + private static class TransientClass { + int a = 2; + transient int b = 3; + } @Test public void should_write_to_writer() throws IOException { @@ -480,6 +485,13 @@ public class TomlWriterTest { assertEquals("a = 1\n", readFile(output)); } + @Test + public void should_skip_transient_fields() throws Exception { + String toml = new TomlWriter().write(new TransientClass()); + + assertEquals("a = 2\n", toml); + } + @Test(expected = IllegalArgumentException.class) public void should_refuse_to_write_string_fragment() { new TomlWriter().write("fragment");