<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:22:46 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>[SERVER-30127] `IDLParserErrorContext` should be available to custom parsers</title>
                <link>https://jira.mongodb.org/browse/SERVER-30127</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The interface for custom parsing classes right now does not include the parsing context, which means error messages from the custom parser can&apos;t include the full context, nor pass it along to further embedded IDL parsers.  It would be useful to have the context available.&lt;/p&gt;</description>
                <environment></environment>
        <key id="403654">SERVER-30127</key>
            <summary>`IDLParserErrorContext` should be available to custom parsers</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="billy.donahue@mongodb.com">Billy Donahue</assignee>
                                    <reporter username="matthew.russotto@mongodb.com">Matthew Russotto</reporter>
                        <labels>
                    </labels>
                <created>Thu, 13 Jul 2017 16:10:18 +0000</created>
                <updated>Fri, 27 May 2022 17:47:28 +0000</updated>
                            <resolved>Fri, 27 May 2022 17:47:28 +0000</resolved>
                                                                    <component>IDL</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="4578508" author="JIRAUSER1262719" created="Fri, 27 May 2022 17:47:18 +0000"  >&lt;p&gt;Ok great, thanks for your confirmation &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=matthew.russotto%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;matthew.russotto@mongodb.com&quot;&gt;matthew.russotto@mongodb.com&lt;/a&gt;. We&apos;ll close &amp;amp; revisit if it comes up again.&lt;/p&gt;</comment>
                            <comment id="4577654" author="matthew.russotto" created="Fri, 27 May 2022 13:08:01 +0000"  >&lt;p&gt;I don&apos;t think this was ever a big deal, so sure.&lt;/p&gt;</comment>
                            <comment id="4576975" author="billy.donahue" created="Fri, 27 May 2022 00:42:02 +0000"  >&lt;p&gt;Oh man I still don&apos;t get it. Is this something we should just close and worry about if it comes up again?&lt;/p&gt;</comment>
                            <comment id="4562479" author="matthew.russotto" created="Fri, 20 May 2022 15:14:31 +0000"  >&lt;p&gt;The idea is when I parsed the decoded resumeToken, instead of passing in IDLParserErrorContext(&quot;$resumeToken&quot;), I&apos;d pass either the IDLParserErrorContext I was passed in, or IDLParserErrroContext(&quot;$resumeToken&quot;, passedInErrorContext).  I think one of these would give the result I wanted.&lt;/p&gt;

&lt;p&gt;(unfortunately this particular example no longer exists in the code)&lt;/p&gt;</comment>
                            <comment id="4557780" author="billy.donahue" created="Wed, 18 May 2022 20:13:41 +0000"  >&lt;p&gt;Ok.&lt;br/&gt;
Do you think this could be a matter of just the IDL parser not composing the errors from nested parses properly?&lt;br/&gt;
Maybe that is a separately addressable problem.&lt;/p&gt;

&lt;p&gt;There&apos;s something I still don&apos;t understand. Suppose you had access to the &lt;tt&gt;IDLParserErrorContext&lt;/tt&gt; from within the &lt;tt&gt;ChangeNotification&lt;/tt&gt; parser function, how would that have helped achieve the properly embedded and nested message you wanted?&lt;/p&gt;</comment>
                            <comment id="4557437" author="matthew.russotto" created="Wed, 18 May 2022 18:46:00 +0000"  >&lt;p&gt;If I properly recall what I was talking about 5 years ago, the issue is we had some BSON structure ChangeNotification&lt;/p&gt;

{
   field1: [...]
   field2: [...]
   resumeToken: &amp;lt;opaque string&amp;gt;
}

&lt;p&gt;The resumeToken itself decoded to BSON (using the custom class)&lt;/p&gt;
{
   fieldA: [...]
   fieldB:[...]
}

&lt;p&gt;We used an IDL parser to parse the resumeToken after decoding.  The errors from that parser would always report a problem with  &quot;$resumeToken.fieldA&quot; or &quot;$resumeToken.fieldB&quot;, when what we really wanted was &quot;$changeNotification.$resumeToken.fieldA&quot; or &quot;$changeNotification.$resumeToken.fieldB&quot;. &lt;br/&gt;
 Or if the $changeNotification was itself nested in some bigger structure, &quot;$someStructure.$changeNotification.$resumeToken.fieldA&quot;.&lt;/p&gt;
</comment>
                            <comment id="4557329" author="billy.donahue" created="Wed, 18 May 2022 18:01:18 +0000"  >&lt;p&gt;Updated title. I assume &lt;tt&gt;IDLParserErrorContext&lt;/tt&gt; was meant there.&lt;/p&gt;

&lt;p&gt;I don&apos;t understand what IDLParserErrorContext would help with in the example or description.&lt;br/&gt;
The &quot;full context&quot; or the &quot;further embedded IDL parsers&quot; are kind of escaping my imagination at the moment.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=matthew.russotto%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;matthew.russotto@mongodb.com&quot;&gt;matthew.russotto@mongodb.com&lt;/a&gt;  can you clarify how access to the IDLParserErrorContext would help a parser report a better message?&lt;/p&gt;</comment>
                            <comment id="4262683" author="JIRAUSER1262719" created="Tue, 21 Dec 2021 21:32:31 +0000"  >&lt;p&gt;We haven&#8217;t heard back from you in at least 1 year, so I&apos;m going to close this ticket. If this is still an issue for you, please provide additional information and we will reopen the ticket.&lt;/p&gt;</comment>
                            <comment id="1621462" author="matthew.russotto" created="Thu, 13 Jul 2017 19:27:35 +0000"  >&lt;p&gt;Yes, this is custom types:&lt;/p&gt;

&lt;p&gt;I have an example but it&apos;s currently sort of a bad one.  &lt;/p&gt;

&lt;p&gt;The ResumeToken class in &lt;a href=&quot;https://mongodbcr.appspot.com/137700001/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://mongodbcr.appspot.com/137700001/&lt;/a&gt; is a custom parser called from DocumentSourceChangeNotification.  Right now it actually parses by calling back to the IDL again, but we expect to change this in the future to use an opaque string (which may decode to BSON, so we may continue to use IDL, but the custom class will be actually necessary).  The top level class uses a context of &quot;$changeNotification&quot;, this field should be &quot;resumeAfter&quot;, so if the parse fails we&apos;d like a message about $changeNotification.resumeAfter.  I think if we had the error context we could do this automatically rather than hardcoding it in the custom class.&lt;/p&gt;</comment>
                            <comment id="1621217" author="mark.benvenuto" created="Thu, 13 Jul 2017 16:55:01 +0000"  >&lt;p&gt;Would this be for custom types? Do you have an example in mind?&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>10.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 13 Jul 2017 16:55:01 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 36 weeks, 5 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>lauren.lewis@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 36 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>billy.donahue@mongodb.com</customfieldvalue>
            <customfieldvalue>lauren.lewis@mongodb.com</customfieldvalue>
            <customfieldvalue>mark.benvenuto@mongodb.com</customfieldvalue>
            <customfieldvalue>matthew.russotto@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htaum7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr9hqf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="6263">Service Arch 2022-05-30</customfieldvalue>
    <customfieldvalue id="6267">Service Arch 2022-06-13</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htagov:</customfieldvalue>

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