<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:38:13 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CSHARP-932] Querying for BsonObjectId == null causes errors</title>
                <link>https://jira.mongodb.org/browse/CSHARP-932</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;We are trying to upgrade from version 1.7.1 of the driver to 1.8.3. One of the problems we have run into is that BsonObjectId can no longer be saved as null in the database, instead it&apos;s saved as &lt;/p&gt;
{ _csharpnull : true }
&lt;p&gt;. &lt;/p&gt;

&lt;p&gt;I don&apos;t understand why this change was made. BsonObjectId is a class, and can be null, so why shouldn&apos;t it be represented as null in the database? &lt;/p&gt;

&lt;p&gt;One example of things that break now is:&lt;/p&gt;

&lt;p&gt;        public class TestClass&lt;br/&gt;
        {&lt;br/&gt;
            public BsonObjectId SomeId &lt;/p&gt;
{ get; set; }
&lt;p&gt;        }&lt;/p&gt;

&lt;p&gt;        &lt;span class=&quot;error&quot;&gt;&amp;#91;Test&amp;#93;&lt;/span&gt;&lt;br/&gt;
        public void TestNullBsonObjectId()&lt;br/&gt;
        {&lt;/p&gt;

&lt;p&gt;            _collection.Insert(new TestClass &lt;/p&gt;
{ SomeId = null }
&lt;p&gt;);&lt;/p&gt;

&lt;p&gt;         //Breaks completely because BsonObjectId null can&apos;t be serialized&lt;br/&gt;
            var objects = _collection.AsQueryable&amp;lt;TestClass&amp;gt;().Where(doc =&amp;gt; doc.SomeId == null).ToList(); &lt;br/&gt;
        }&lt;/p&gt;

&lt;p&gt;So the driver is perfectly happy to save documents with a BsonObjectId property that is null to the database, but if you try to query them again to get the ones where the id is null that breaks completely. I could create a query to explicitly check for SomeId._csharpnull = True, but that just seems weirdly csharp specific. &lt;/p&gt;

&lt;p&gt;The LINQ query thing above is clearly a bug, although I don&apos;t see how it can be fixed.  But my main question is, what would you recommend? We have millions of records that can have null values in fields of type BsonObjectId. Should we change them to a Nullable&amp;lt;ObjectId&amp;gt; instead in our CSharp code? Or something else? Create our own Id type that is not a BsonValue?&lt;/p&gt;

&lt;p&gt;I tried to force the 1.8 driver to behave like 1.7.1 but since it&apos;s not possible to register a custom serializer for BsonObjectId, and the serialization writes the {_csharpnull:true} thing before checking the member map I wasn&apos;t able to change it back.&lt;/p&gt;

&lt;p&gt;Thanks in advance,&lt;br/&gt;
Einar&lt;/p&gt;</description>
                <environment></environment>
        <key id="122591">CSHARP-932</key>
            <summary>Querying for BsonObjectId == null causes errors</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="robert@mongodb.com">Robert Stam</assignee>
                                    <reporter username="eeg@trustpilot.com">Einar Egilsson</reporter>
                        <labels>
                    </labels>
                <created>Wed, 19 Mar 2014 13:43:30 +0000</created>
                <updated>Sat, 2 Apr 2016 02:39:56 +0000</updated>
                            <resolved>Tue, 22 Apr 2014 23:50:54 +0000</resolved>
                                    <version>1.8.3</version>
                                    <fixVersion>1.9.1</fixVersion>
                                    <component>Serialization</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="560251" author="xgen-internal-githook" created="Wed, 23 Apr 2014 14:12:27 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;name&apos;: u&apos;rstam&apos;, u&apos;email&apos;: u&apos;robert@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-932&quot; title=&quot;Querying for BsonObjectId == null causes errors&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-932&quot;&gt;&lt;del&gt;CSHARP-932&lt;/del&gt;&lt;/a&gt;: Fix queries comparing BsonValue properties to C# null.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/75c0281226b4c89bcddc29519fb9f00b8177ebd6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/75c0281226b4c89bcddc29519fb9f00b8177ebd6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="559662" author="xgen-internal-githook" created="Tue, 22 Apr 2014 23:50:34 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;name&apos;: u&apos;rstam&apos;, u&apos;email&apos;: u&apos;robert@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-932&quot; title=&quot;Querying for BsonObjectId == null causes errors&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-932&quot;&gt;&lt;del&gt;CSHARP-932&lt;/del&gt;&lt;/a&gt;: Fix queries comparing BsonValue properties to C# null.&lt;br/&gt;
Branch: v1.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/fd47b44f580c962df0ee2bb9b99a58868b8a94cb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/fd47b44f580c962df0ee2bb9b99a58868b8a94cb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="520168" author="rstam" created="Thu, 20 Mar 2014 17:57:39 +0000"  >&lt;p&gt;I&apos;m linking this ticket to &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-863&quot; title=&quot;How should BsonValues be serialized for C# null?&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-863&quot;&gt;&lt;del&gt;CSHARP-863&lt;/del&gt;&lt;/a&gt; which describes the serialization part of this issue.&lt;/p&gt;

&lt;p&gt;I&apos;m not calling it a duplicate because this ticket is also about the Query builder failing.&lt;/p&gt;</comment>
                            <comment id="519300" author="rstam" created="Wed, 19 Mar 2014 16:01:17 +0000"  >&lt;p&gt;The LINQ issue can actually be reproduced using the Query builder alone:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;public class C&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    public BsonObjectId V;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var query = Query&amp;lt;C&amp;gt;.Where(c =&amp;gt; c.V == null); // throws an exception&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var json = query.ToJson();&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                            <comment id="519272" author="eeg@trustpilot.com" created="Wed, 19 Mar 2014 15:26:51 +0000"  >&lt;p&gt;Yes, that&apos;s a fair point. Anyway, many thanks for the quick responses.&lt;/p&gt;</comment>
                            <comment id="519266" author="rstam" created="Wed, 19 Mar 2014 15:23:19 +0000"  >&lt;p&gt;I see... sorry I misunderstood.&lt;/p&gt;

&lt;p&gt;For better or for worse, we&apos;ve put a lot of emphasis on 100% fidelity in our serialization. We want to make sure that when you deserialize an object you get back exactly what you started with.&lt;/p&gt;</comment>
                            <comment id="519188" author="eeg@trustpilot.com" created="Wed, 19 Mar 2014 15:04:34 +0000"  >&lt;p&gt;Yes, I realize that. I just think that it would be an acceptable special case if it worked like:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var o = new C();&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;o.V = null; //CSharp null&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var bytes = o.ToBson();&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;//Serializes to { V: null }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&amp;nbsp;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var backFromBson = BsonSerializer.Deserilize&amp;lt;C&amp;gt;(bytes);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;backFromBson.V is BsonNull.Value; //true&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;I.e. I think it would be acceptable that a csharp null will come back from the database as BsonNull.Value if your field is of type BsonValue. I would guess that having properties of type BsonValue on your objects is less common than having properties of type BsonObjectId.&lt;/p&gt;

&lt;p&gt;Anyway, that was just to explain what I meant. I realize that it&apos;s not likely to be changed back to 1.7.1 behavior at this point.&lt;/p&gt;
</comment>
                            <comment id="519178" author="rstam" created="Wed, 19 Mar 2014 14:54:16 +0000"  >&lt;p&gt;Just to clarify, if you deserialize:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{ V : null }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;the value of V &lt;b&gt;is&lt;/b&gt; BsonNull.Value (not C# null), assuming your property is declared as a BsonValue (and not some subclass).&lt;/p&gt;

&lt;p&gt;That&apos;s why we need an alternate representation for C# null values.&lt;/p&gt;
</comment>
                            <comment id="519174" author="eeg@trustpilot.com" created="Wed, 19 Mar 2014 14:49:22 +0000"  >&lt;p&gt;Thanks for the answer. &lt;/p&gt;

&lt;p&gt;I actually think it would have been better if whenever you had a property of type BsonValue and you deserialized &lt;/p&gt;
{ Prop : null }
&lt;p&gt; from the database it would just become BsonNull.Value. It would be a weird special case, yes, but I think it&apos;s even weirder now that any property of type BsonObjectId, BsonDocument and other BsonValue derived type can be null in csharp, but can&apos;t be compared to null in a query, and has a very programming language specific representation in the database.&lt;/p&gt;

&lt;p&gt;But everything is a tradeoff I guess. We&apos;ll switch to ObjectId? or a custom Id class that doesn&apos;t inherit from BsonValue instead. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="99239">CSHARP-863</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrgunb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>11927</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="130">Sprint 1 April 14 - May 2</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>