From 0faa2167c4bfdcfc56d1fa3eed2158e6cdcce288 Mon Sep 17 00:00:00 2001 From: jmestwa-coder Date: Mon, 1 Jun 2026 15:14:32 +0530 Subject: [PATCH] fix loss of read-only state in SubjectConverter --- .../converters/extended/SubjectConverter.java | 2 +- .../thoughtworks/acceptance/ExtendedTypesTest.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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";