What steps will reproduce the problem?
Please look at the following code:
<code language="java">
public class SerializeTest {
public static class AssetMetadata extends ArrayList<String> {}
public static class AssetRequest {
public ArrayList<AssetMetadata> styles;
public ArrayList<AssetMetadata> scripts;
}
private static final AssetMetadata SCRIPT_METADATA = new AssetMetadata() {{
add("path/to/script.js");
}};
private static final AssetMetadata STYLE_METADATA = new AssetMetadata() {{
add("path/to/style.js");
}};
@Test
public void testSerialization() {
AssetRequest metadata = new AssetRequest();
metadata.styles = new ArrayList<AssetMetadata>() {{ add(STYLE_METADATA); }};
metadata.scripts = new ArrayList<AssetMetadata>() {{ add(SCRIPT_METADATA); }};
String json = new Gson().toJson(metadata, AssetRequest.class);
System.out.println(json);
}
}
</code>
What is the expected output? What do you see instead?
Expected output:
{"styles":[["path/to/style.js"]],"scripts":[["path/to/script.js"]]}
Actual output: {"styles":[null],"scripts":[null]}
What version of the product are you using? On what operating system?
I use version 2.2.2. With version 1.7.1 serialization and deserialization works
as expected.
Please provide any additional information below.
If I use the ArrayList<String> collection instead of the AssetMetadata class
then it works as expected.
Original issue reported on code.google.com by kaps.chr...@gmail.com on 16 Aug 2012 at 2:11
Original issue reported on code.google.com by
kaps.chr...@gmail.com
on 16 Aug 2012 at 2:11