<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 04:11:14 CET 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>Magnolia - Issue tracker</title>
    <link>https://jira.magnolia-cms.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-uk</language>    <build-info>
        <version>9.4.2</version>
        <build-number>940002</build-number>
        <build-date>19-01-2023</build-date>
    </build-info>


<item>
            <title>[MAGNOLIA-6092] Hamcrest UtilMatchers: a pattern for asserting an exception is thrown</title>
                <link>https://jira.magnolia-cms.com/browse/MAGNOLIA-6092</link>
                <project id="10000" key="MAGNOLIA">Magnolia</project>
                    <description>&lt;p&gt;In our current unit tests, we use a mixture of 2 patterns to assert the certain code throws certain exception:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
    @Test(expected = IllegalArgumentException.class)
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void testGetTitleThrowsException() {
        &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; MetaData(root).getTitle();
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
    @Test
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void testGetTitleThrowsException() {
        &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; {
          &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; MetaData(root).getTitle();
          fail(&lt;span class=&quot;code-quote&quot;&gt;&quot;should have failed&quot;&lt;/span&gt;);
        } &lt;span class=&quot;code-keyword&quot;&gt;catch&lt;/span&gt; (Throwable t) {
          &lt;span class=&quot;code-comment&quot;&gt;// various assertions on t, possibly using info.magnolia.test.hamcrest.UtilMatchers 
&lt;/span&gt;        }
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The former is concise, but leaves no place for signaling the intent of the test, and provides no way to check the actual exception; it&apos;s good enough in some cases, but in others, we really want to make sure we&apos;re getting the precise exception we think we&apos;re getting.&lt;/p&gt;

&lt;p&gt;The latter is much more precise, but is a tad verbose, maybe a bit difficult to read, and can be error prone (it&apos;s easy to forget the call to &lt;tt&gt;fail()&lt;/tt&gt;, for example)&lt;/p&gt;

&lt;p&gt;I propose the following, implemented using a new matcher:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;

&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; info.magnolia.test.hamcrest.UtilMatchers.*;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; org.junit.Assert.*;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.test.hamcrest.Execution;

...

    @Test
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void throwMatcherSampleUsage() {
        assertThat(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Execution(){
            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void evaluate() &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
                &lt;span class=&quot;code-comment&quot;&gt;// &lt;span class=&quot;code-keyword&quot;&gt;do&lt;/span&gt; something that fails, such as
&lt;/span&gt;                &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.println(1/0);
            }
        }, throwMatcher(isExceptionWithMatchingMessage(ArithmeticException.class, &lt;span class=&quot;code-quote&quot;&gt;&quot;/ by zero&quot;&lt;/span&gt;)));
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;or, slightly differently:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
    @Test
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void throwMatcherSampleUsage() {
        &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Execution shouldFail = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Execution() {
            @Override
            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void evaluate() &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
                &lt;span class=&quot;code-comment&quot;&gt;// &lt;span class=&quot;code-keyword&quot;&gt;do&lt;/span&gt; something that fails, such as
&lt;/span&gt;                &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.println(1 / 0);
            }
        };
        assertThat(shouldFail, throwMatcher(isExceptionWithMatchingMessage(ArithmeticException.class, &lt;span class=&quot;code-quote&quot;&gt;&quot;/ by zero&quot;&lt;/span&gt;)));
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Additionally, we can even have the same principle to assert that a piece of code does not throw any exception:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
 assertThat(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Execution() {
            @Override
            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void evaluate() &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
                &lt;span class=&quot;code-comment&quot;&gt;// yay
&lt;/span&gt;            }
        }, noExceptionThrown());
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And here&apos;s a sample of how it&apos;d look like if we used Java 8&apos;s lambdas:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
        assertThat(() -&amp;gt; &lt;span class=&quot;code-object&quot;&gt;System&lt;/span&gt;.out.print(1 / 0), throwsException(isExceptionWithMatchingMessage(ArithmeticException.class, &lt;span class=&quot;code-quote&quot;&gt;&quot;/ by zero&quot;&lt;/span&gt;)));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="43239">MAGNOLIA-6092</key>
            <summary>Hamcrest UtilMatchers: a pattern for asserting an exception is thrown</summary>
                <type id="2" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10891&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/neutral.gif">Neutral</priority>
                        <status id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="gjoseph">Magnolia International</assignee>
                                    <reporter username="gjoseph">Magnolia International</reporter>
                        <labels>
                    </labels>
                <created>Wed, 18 Feb 2015 20:20:40 +0100</created>
                <updated>Fri, 22 May 2015 09:39:28 +0200</updated>
                            <resolved>Tue, 12 May 2015 19:03:39 +0200</resolved>
                                                    <fixVersion>5.4</fixVersion>
                                    <component>testing</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="99020" author="gjoseph" created="Wed, 18 Feb 2015 20:30:11 +0100"  >&lt;p&gt;Pushed into branch &lt;tt&gt;feature/&lt;a href=&quot;https://jira.magnolia-cms.com/browse/MAGNOLIA-6092&quot; title=&quot;Hamcrest UtilMatchers: a pattern for asserting an exception is thrown&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MAGNOLIA-6092&quot;&gt;&lt;del&gt;MAGNOLIA-6092&lt;/del&gt;&lt;/a&gt;-matcher-for-thrown-exception&lt;/tt&gt; so this can be reviewed/discussed or merged &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="99068" author="mmuehlebach" created="Thu, 19 Feb 2015 15:07:11 +0100"  >&lt;p&gt;Would be really helpful. But I have an idea for a more generic matcher.&lt;br/&gt;
What do you think about something that looks a little bit more like:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;assertThat(...., thrownIsOfInstance(ArithmeticException.class)
                 .hasMessageContaining(&lt;span class=&quot;code-quote&quot;&gt;&quot;by zero&quot;&lt;/span&gt;)
                 .hasNoCause());
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Of course beside hasMessageContaining(), hasMessage() hasMessageStartingWith(), hasMessageEndingWith() would make sense as well.&lt;/p&gt;</comment>
                            <comment id="99090" author="had" created="Fri, 20 Feb 2015 07:35:53 +0100"  >&lt;p&gt;@Michael great idea. Care to update branch to add impl for this?&lt;/p&gt;</comment>
                            <comment id="99422" author="gjoseph" created="Wed, 25 Feb 2015 14:03:42 +0100"  >&lt;ul&gt;
	&lt;li&gt;hasMessage*: -1; withMessage() that will take another &lt;tt&gt;Matcher&amp;lt;String&amp;gt;&lt;/tt&gt; as an argument would be better.&lt;/li&gt;
	&lt;li&gt;chaining matchers: +1; I&apos;ve actually also started work on that with &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MAGNOLIA-6063&quot; title=&quot;new Hamcrest Matcher to help build chaining Matchers&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MAGNOLIA-6063&quot;&gt;&lt;del&gt;MAGNOLIA-6063&lt;/del&gt;&lt;/a&gt; (it looks like that&apos;s been merged to master via the config branch?)&lt;/li&gt;
	&lt;li&gt;the topic here is not just how to match the exception but more importantly&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/help_16.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; how we &quot;structure&quot; the test code to catch-and-match&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="99427" author="gjoseph" created="Wed, 25 Feb 2015 16:06:47 +0100"  >&lt;p&gt;Replaced usage of &lt;tt&gt;info.magnolia.test.Assertion&lt;/tt&gt; by a specialized interface (easier to extract from core); added lambda sample.&lt;/p&gt;</comment>
                            <comment id="99429" author="gjoseph" created="Wed, 25 Feb 2015 16:15:02 +0100"  >&lt;p&gt;I would like to propose to split out further improvement on exception matching to another task; this concerns &lt;tt&gt;UtilMatchers.isExceptionWith*&lt;/tt&gt; methods, which pre-existed this ticket.&lt;/p&gt;

&lt;p&gt;This ticket is about &lt;tt&gt;UtilMatchers.throwsException()&lt;/tt&gt; and &lt;tt&gt;throwsNothing&lt;/tt&gt;.&lt;/p&gt;</comment>
                            <comment id="103866" author="gjoseph" created="Tue, 12 May 2015 18:23:44 +0200"  >&lt;p&gt;Reopening - moving these matchers to &lt;tt&gt;ExecutionMatcher&lt;/tt&gt;.&lt;/p&gt;</comment>
                            <comment id="103871" author="gjoseph" created="Tue, 12 May 2015 19:03:39 +0200"  >&lt;p&gt;Re-done on &lt;tt&gt;feature/exception-matchers-&lt;a href=&quot;https://jira.magnolia-cms.com/browse/MAGNOLIA-6050&quot; title=&quot;Hamcrest: more exception matchers&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MAGNOLIA-6050&quot;&gt;&lt;del&gt;MAGNOLIA-6050&lt;/del&gt;&lt;/a&gt;&lt;/tt&gt; branch. Please review as a whole with &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MAGNOLIA-6050&quot; title=&quot;Hamcrest: more exception matchers&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MAGNOLIA-6050&quot;&gt;&lt;del&gt;MAGNOLIA-6050&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="104592" author="mmuehlebach" created="Thu, 21 May 2015 11:38:03 +0200"  >&lt;p&gt;Review comments:&lt;br/&gt;
Commits&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Is it planned to squash the two last commits (0751f3a, adfe7e7)? If no, 0751f3a would not compile because ExecutionMatcherTest uses the removed methods isException...&lt;/li&gt;
	&lt;li&gt;Refering to both issues in the commit message looks odd. Excpecially because in the text and code it looks like 6050 is replacing 6092.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;ChainingMatcher&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Line 84: replace &quot; &quot; + &quot;with&quot; + &quot; &quot;   with  &quot; with &quot;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;ExactTypeMatcher&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;has some commented code lines: remove&lt;/li&gt;
	&lt;li&gt;is missing static factory methods (or visability should be reduced, if it is only a utility class for other matchers)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;ExceptionMatcher&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;make exact matching explicit in the name (instaneOf and ofType sound like they do the same): why not have #ofType() and #ofExactType() instead of #instanceOf() and #ofType()&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;ExecutionMatcher&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Migrate magnolia to java 1.8 and use Lambdas &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="104646" author="gjoseph" created="Thu, 21 May 2015 22:52:37 +0200"  >&lt;ul&gt;
	&lt;li&gt;Ended up renaming &lt;tt&gt;ExactTypeMatcher&lt;/tt&gt; to &lt;tt&gt;StrictInstanceOf&lt;/tt&gt; to be closer to Hamcrest&apos;s &lt;tt&gt;InstanceOf&lt;/tt&gt;; renamed factory method in ExceptionMatcher.&lt;/li&gt;
	&lt;li&gt;Kept separate commits for readability&lt;/li&gt;
	&lt;li&gt;Added clarifying comments&lt;/li&gt;
&lt;/ul&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>relation</name>
                                            <outwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="21343">MAGNOLIA-3792</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="42606">MAGNOLIA-6050</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="43067">MAGNOLIA-6063</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_14166" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Acceptance criteria</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>magnolia-cms.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 19 Feb 2015 15:07:11 +0100</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_12730" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14151" key="com.atlassian.jira.toolkit:message">
                        <customfieldname>Docu info</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10061" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comm is not jira-dev</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>mmuehlebach</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            8 years, 39 weeks, 3 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>10.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>had</customfieldvalue>
            <customfieldvalue>gjoseph</customfieldvalue>
            <customfieldvalue>mmuehlebach</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0000u:x</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>27366</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14145" key="com.intenso.jira.issue-templates:issue-templates-customfield">
                        <customfieldname>Template</customfieldname>
                        <customfieldvalues>
                            


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>