[Mono-bugs] [Bug 675620] New: ArgumentNullException thrown when calling SyndicationContent.WriteTo

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Feb 28 12:54:47 EST 2011



           Summary: ArgumentNullException thrown when calling
    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: atsushi at ximian.com
        ReportedBy: dmitchell at logos.com
         QAContact: mono-bugs at lists.ximian.com
          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
            HttpWebRequest request = (HttpWebRequest) WebRequest.Create(uri);

            SyndicationFeed feed = null;
            using (HttpWebResponse response = (HttpWebResponse)
            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,

            if (feed == null)
                Console.Out.WriteLine("No feed!");

            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
//                    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.

More information about the mono-bugs mailing list