diff --git a/xstream/src/java/com/thoughtworks/xstream/converters/extended/SubjectConverter.java b/xstream/src/java/com/thoughtworks/xstream/converters/extended/SubjectConverter.java index 594decd17..24d4c032b 100644 --- a/xstream/src/java/com/thoughtworks/xstream/converters/extended/SubjectConverter.java +++ b/xstream/src/java/com/thoughtworks/xstream/converters/extended/SubjectConverter.java @@ -105,7 +105,7 @@ protected Set unmarshalPrivateCredentials(final HierarchicalStreamReader protected boolean unmarshalReadOnly(final HierarchicalStreamReader reader) { reader.moveDown(); - final boolean readOnly = Boolean.getBoolean(reader.getValue()); + final boolean readOnly = Boolean.parseBoolean(reader.getValue()); reader.moveUp(); return readOnly; }; diff --git a/xstream/src/test/com/thoughtworks/acceptance/ExtendedTypesTest.java b/xstream/src/test/com/thoughtworks/acceptance/ExtendedTypesTest.java index 6973006c9..9969d6e2d 100644 --- a/xstream/src/test/com/thoughtworks/acceptance/ExtendedTypesTest.java +++ b/xstream/src/test/com/thoughtworks/acceptance/ExtendedTypesTest.java @@ -243,6 +243,19 @@ public void testSubject() { assertBothWays(subject, expectedXml); } + public void testReadOnlySubject() { + xstream.allowTypes(Subject.class); + xstream.allowTypeHierarchy(Principal.class); + + final Subject subject = new Subject(); + subject.setReadOnly(); + assertTrue(subject.isReadOnly()); + + final String xml = xstream.toXML(subject); + final Subject unmarshalled = (Subject)xstream.fromXML(xml); + assertTrue(unmarshalled.isReadOnly()); + } + public void testCharset() { final Charset charset = Charset.forName("utf-8"); final String expectedXml = "UTF-8";