From: Atsushi Eno Date: Wed, 22 Jul 2009 08:21:30 +0000 (-0000) Subject: 2009-07-22 Atsushi Enomoto X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=49c3dbeaee2767eeeb6c989a59c8d4708ff9c0f9;p=mono.git 2009-07-22 Atsushi Enomoto * XmlFormatterDeserializer.cs : when reading empty primitive value, make sure to consume the reader. Fixed bug #524083. * XmlObjectSerializerTest.cs : add test for bug #524083, by Rolf Bjarne Kvinge. svn path=/trunk/mcs/; revision=138367 --- diff --git a/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/ChangeLog b/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/ChangeLog index c4fd3308837..1973449a5a9 100755 --- a/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/ChangeLog +++ b/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/ChangeLog @@ -1,3 +1,8 @@ +2009-07-22 Atsushi Enomoto + + * XmlFormatterDeserializer.cs : when reading empty primitive value, + make sure to consume the reader. Fixed bug #524083. + 2009-07-22 Atsushi Enomoto * SerializationMap.cs : call MoveToContent() before examining diff --git a/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/XmlFormatterDeserializer.cs b/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/XmlFormatterDeserializer.cs index e6eae077a45..1659a2463ed 100644 --- a/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/XmlFormatterDeserializer.cs +++ b/mcs/class/System.Runtime.Serialization/System.Runtime.Serialization/XmlFormatterDeserializer.cs @@ -147,6 +147,7 @@ namespace System.Runtime.Serialization if (KnownTypeCollection.GetPrimitiveTypeFromName (graph_qname.Name) != null) { string value; if (reader.IsEmptyElement) { + reader.Read (); // advance if (type.IsValueType) return Activator.CreateInstance (type); else diff --git a/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/ChangeLog b/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/ChangeLog index c5fcedb56af..855c4d58375 100644 --- a/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/ChangeLog +++ b/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/ChangeLog @@ -1,3 +1,8 @@ +2009-07-22 Atsushi Enomoto + + * XmlObjectSerializerTest.cs : add test for bug #524083, by + Rolf Bjarne Kvinge. + 2009-07-22 Atsushi Enomoto * XmlObjectSerializerTest.cs : now we can make xml indented as diff --git a/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/XmlObjectSerializerTest.cs b/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/XmlObjectSerializerTest.cs index cf49a89d791..dffddd99862 100644 --- a/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/XmlObjectSerializerTest.cs +++ b/mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/XmlObjectSerializerTest.cs @@ -1224,6 +1224,18 @@ namespace MonoTests.System.Runtime.Serialization } } + [Test] + public void Bug524083 () + { + string xml = @" + + +"; + + using (XmlReader reader = XmlReader.Create (new StringReader (xml))) + new DataContractSerializer(typeof (AsxEntryInfo)).ReadObject (reader); + } + private T Deserialize (string xml) { return Deserialize (xml, typeof (T)); @@ -1545,4 +1557,9 @@ public class PartDummyEntryInfo : DummyEntryInfo public PartDummyEntryInfo() {} } - +[DataContract(Namespace="http://example.com/schemas/asx")] +public class AsxEntryInfo +{ + [DataMember] + public string AdvertPrompt { get; set; } +}