https://bugzilla.novell.com/show_bug.cgi?id=675620
https://bugzilla.novell.com/show_bug.cgi?id=675620#c0 Summary: ArgumentNullException thrown when calling SyndicationContent.WriteTo Classification: Mono Product: Mono: Class Libraries Version: 2.8.x Platform: All OS/Version: All Status: NEW Severity: Normal Priority: P5 - None Component: Sys.XML AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.102 Safari/534.13 When calling SyndicationContent.WriteTo with an XmlWriter created from XDocument.CreateWriter, an ArgumentNullException is thrown. In Microsoft's implementation, no exception is thrown. Code that reproduces this behavior is included below. using System; using System.IO; using System.Linq; using System.Net; using System.ServiceModel.Syndication; using System.Text; using System.Xml; using System.Xml.Linq; namespace SyndicationWikiTest { class MainClass { public static void Main (string[] args) { Uri uri = new Uri("http://topics.logos.com/query.aspx?query=[[lcv_id::%creation]]&format=atom&content=wiki"); HttpWebRequest request = (HttpWebRequest) WebRequest.Create(uri); SyndicationFeed feed = null; using (HttpWebResponse response = (HttpWebResponse) request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (XmlReader reader = XmlReader.Create(stream)) { if (response.StatusCode == HttpStatusCode.OK) feed = SyndicationFeed.Load(reader); else if (response.StatusCode != HttpStatusCode.NotModified) Console.Out.WriteLine("Unexpected HTTP response when accessing '{0}': {1} {2}", uri, (int) response.StatusCode, response.StatusDescription); } if (feed == null) { Console.Out.WriteLine("No feed!"); return; } foreach (SyndicationItem item in feed.Items) { Console.WriteLine("contentType = {0}", item.Content == null ? "null" : item.Content.Type); // this should work... XDocument docWiki = new XDocument(); using (XmlWriter writer = docWiki.CreateWriter()) item.Content.WriteTo(writer, "content", "w"); XElement content = docWiki.Root; // a workaround // StringBuilder builder = new StringBuilder(); // using (XmlWriter writer = XmlWriter.Create(builder)) // item.Content.WriteTo(writer, "content", "w"); // // XDocument docWiki = null; // using (StringReader reader = new StringReader(builder.ToString())) // docWiki = XDocument.Load(reader); // // XElement docWikiRoot = docWiki.Root; // XElement content = docWikiRoot != null ? docWikiRoot.Elements().FirstOrDefault() : null; Console.WriteLine("content:{0}", content); } } } } Reproducible: Always Steps to Reproduce: 1. Take the code above, put it in a file, and compile it with the flags -r:System.Xml.Linq -r:System.ServiceModel -r:System.ServiceModel.Web 2. Run the resulting executable 3. Crash! Actual Results: An ArgumentNullException is thrown. Expected Results: No ArgumentNullException should be thrown. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
