<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 04:14:20 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-6419] Publish including subnodes always shows superuser as version creator </title>
                <link>https://jira.magnolia-cms.com/browse/MAGNOLIA-6419</link>
                <project id="10000" key="MAGNOLIA">Magnolia</project>
                    <description>&lt;p&gt;To see this issue:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Log in as eric&lt;/li&gt;
	&lt;li&gt;Publish a single page&lt;/li&gt;
	&lt;li&gt;Observe the version history and see eric&apos;s name&lt;/li&gt;
	&lt;li&gt;Now publish a page w/ subnodes&lt;/li&gt;
	&lt;li&gt;Observe the version history and see superuser&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="48538">MAGNOLIA-6419</key>
            <summary>Publish including subnodes always shows superuser as version creator </summary>
                <type id="1" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10883&amp;avatarType=issuetype">Bug</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="ejervidalo">Espen Jervidalo</assignee>
                                    <reporter username="rgange">Richard Gange</reporter>
                        <labels>
                            <label>support</label>
                    </labels>
                <created>Sat, 17 Oct 2015 21:52:00 +0200</created>
                <updated>Mon, 30 Nov 2015 08:55:39 +0100</updated>
                            <resolved>Wed, 25 Nov 2015 13:53:31 +0100</resolved>
                                    <version>5.3.11</version>
                    <version>5.4.2</version>
                                    <fixVersion>5.3.12</fixVersion>
                    <fixVersion>5.4.4</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                    <workratio workratioPercent="128"/>
                                    <progress percentage="100">
                                    <originalProgress>
                                                    <row percentage="78" backgroundColor="#89afd7"/>
                                                    <row percentage="22" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="100" backgroundColor="#51a825"/>
                                                    <row percentage="0" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </progress>
                                    <aggregateprogress percentage="100">
                                    <originalProgress>
                                                    <row percentage="78" backgroundColor="#89afd7"/>
                                                    <row percentage="22" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="100" backgroundColor="#51a825"/>
                                                    <row percentage="0" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </aggregateprogress>
                                    <timeoriginalestimate seconds="115200">4d</timeoriginalestimate>
                            <timeestimate seconds="0">0d</timeestimate>
                            <timespent seconds="147600">5d 1h</timespent>
                                <comments>
                            <comment id="115118" author="oanh.thai" created="Mon, 26 Oct 2015 12:44:18 +0100"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=mgeljic&quot; class=&quot;user-hover&quot; rel=&quot;mgeljic&quot;&gt;mgeljic&lt;/a&gt;, &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=had&quot; class=&quot;user-hover&quot; rel=&quot;had&quot;&gt;had&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is my understanding after investigating:&lt;/p&gt;

&lt;p&gt;According to ticket, this is systematic issue and I reproduced bug on version 5.3.11 and 5.4.2&lt;br/&gt;
There are related modules need to be altered: &lt;b&gt;scheduler&lt;/b&gt;, &lt;b&gt;magnolia-core&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;1. There is my understanding:&lt;/b&gt;&lt;br/&gt;
This issue happened when user does async action:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;AbstractCommandAction will be called&lt;/li&gt;
	&lt;li&gt;DefaultAsyncActionExecutor will be called and started the job by scheduler module&lt;/li&gt;
	&lt;li&gt;CommandJob will be called to execute corresponding commands&lt;/li&gt;
	&lt;li&gt;SimpleContext (real instance is SystemContext) is set to corresponding command -&amp;gt; because using SystemContext so superuser is the creator of version in VersionCommand&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Here is unit test for reproducing also: &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 testUserInCommandJobIsCorrectUser() &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; JobExecutionException {
        &lt;span class=&quot;code-comment&quot;&gt;// GIVEN
&lt;/span&gt;        CommandJob cj = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; CommandJob();
        &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Exception exception = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Exception();
        JobDataMap jobDataMap = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; JobDataMap();
        jobDataMap.put(SchedulerConsts.CONFIG_JOB_COMMAND, &lt;span class=&quot;code-quote&quot;&gt;&quot;testCommand&quot;&lt;/span&gt;);
        jobDataMap.put(SchedulerConsts.CONFIG_JOB_COMMAND_CATALOG, &lt;span class=&quot;code-quote&quot;&gt;&quot;testCatalog&quot;&lt;/span&gt;);
        Map params = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; HashMap&amp;lt;&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt;&amp;gt;();
        params.put(SchedulerConsts.ATTRIBUTE_REQUESTOR, &lt;span class=&quot;code-quote&quot;&gt;&quot;eric&quot;&lt;/span&gt;);
        jobDataMap.put(SchedulerConsts.CONFIG_JOB_PARAMS, params);

        MockContext context = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; MockContext();
        User user = mock(User.class);
        when(user.getName()).thenReturn(&lt;span class=&quot;code-quote&quot;&gt;&quot;eric&quot;&lt;/span&gt;);
        context.setUser(user);
        MgnlContext.setInstance(context);
        when(userManager.getUser(&lt;span class=&quot;code-quote&quot;&gt;&quot;eric&quot;&lt;/span&gt;)).thenReturn(user);

        &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; username = MgnlContext.getUser().getName();

        when(jobCtx.getJobDetail()).thenReturn(jobDetail);
        when(jobDetail.getName()).thenReturn(&lt;span class=&quot;code-quote&quot;&gt;&quot;Test Job&quot;&lt;/span&gt;);
        when(jobCtx.getJobDetail().getJobDataMap()).thenReturn(jobDataMap);
        when(commandsManager.getCommand(&lt;span class=&quot;code-quote&quot;&gt;&quot;testCatalog&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;testCommand&quot;&lt;/span&gt;)).thenReturn(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Command() {


            @Override
            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; execute(Context context) &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (MgnlContext.getUser().getName().equalsIgnoreCase(username)) {
                    &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;
                }
                &lt;span class=&quot;code-keyword&quot;&gt;throw&lt;/span&gt; exception;
            }

            @Override
            &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; Command clone() &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; CloneNotSupportedException {
                &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;;
            }
        });

        &lt;span class=&quot;code-comment&quot;&gt;// WHEN
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; ArgumentCaptor&amp;lt;CommandJob.JobResult&amp;gt; argumentCaptor =
                ArgumentCaptor.forClass(CommandJob.JobResult.class);

        &lt;span class=&quot;code-comment&quot;&gt;// THEN
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; {
            cj.execute(jobCtx);
        } &lt;span class=&quot;code-keyword&quot;&gt;catch&lt;/span&gt; (JobExecutionException e) {
            &lt;span class=&quot;code-comment&quot;&gt;// THEN
&lt;/span&gt;            fail(&lt;span class=&quot;code-quote&quot;&gt;&quot;user context is not correct &quot;&lt;/span&gt; + username);
        }
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;b&gt;2. There are my approach:&lt;/b&gt;&lt;br/&gt;
The root cause is CommandJob create a SimpleContext (real instance is SystemContext) so I want to fix deeply in this case so it should not be problem for doing async later&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;b&gt;First: Alter SimpleContext class&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;+ Create new SimpleContext constructor&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;public&lt;/span&gt; SimpleContext(Map&amp;lt;&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt;&amp;gt; map, User user) {
        &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;(map);
        &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.user = user;
    }

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;+ Alter getUser() function&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;public&lt;/span&gt; User getUser() {
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.user == &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.ctx.getUser();
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.user;
        }
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;+ From now on, SimpleContext can get correct user if we use a new constructor&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;b&gt;Second: Alter CommandJob class&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;+ Get username from params&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;if&lt;/span&gt; (jobData.containsKey(SchedulerConsts.CONFIG_JOB_PARAMS) &amp;amp;&amp;amp; jobData.get(SchedulerConsts.CONFIG_JOB_PARAMS) != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            Map params = (Map) jobData.get(SchedulerConsts.CONFIG_JOB_PARAMS);
            jobClusterId = (&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;) params.get(&lt;span class=&quot;code-quote&quot;&gt;&quot;clusterId&quot;&lt;/span&gt;);
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (params.containsKey(SchedulerConsts.ATTRIBUTE_REQUESTOR)) {
                &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; requester = (&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;) params.get(SchedulerConsts.ATTRIBUTE_REQUESTOR);
                user = securitySupport.getUserManager().getUser(requester);
            }
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;+ Alter code to init context&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;
MgnlContext.setInstance(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; SimpleContext(systemContext, user));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;b&gt;There is one case we need to consider like start Command in ObservationUtil module also&lt;/b&gt;. But I think it will be another ticket&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;For more details, I have a patch fix, please feel free to review&lt;/b&gt; &lt;a href=&quot;https://gist.github.com/oanhthai/74ab4d72aa50a4b79120&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/oanhthai/74ab4d72aa50a4b79120&lt;/a&gt;&lt;/p&gt;
</comment>
                            <comment id="115489" author="had" created="Tue, 3 Nov 2015 12:34:42 +0100"  >&lt;p&gt;&lt;b&gt;Scheduler changes:&lt;/b&gt;&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;what if user doesn&apos;t exist anymore (we retrieve user by name)&lt;/li&gt;
	&lt;li&gt;what if command gets reused ... context and other things might not be valid anymore if/when injected. Are those objects proxied? Are we sure they are always &quot;clean&quot;? Specially system context. That&apos;s thread dependent.  (should be the case, but i&apos;m not 100% sure)&lt;/li&gt;
	&lt;li&gt;if command gets reused, and on different thread, that would definitively be invalid.&lt;/li&gt;
	&lt;li&gt;would feel much better if there was integration test as well.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;for changes in context itself:&lt;/b&gt;&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;It should be fine, personally I would maybe invert the condition and call super only as fallback in case user is not set, but that&apos;s just me so feel free to ignore this remark &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/biggrin.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;


&lt;p&gt;&lt;b&gt;the test:&lt;/b&gt;&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;as mentioned above I&apos;d love to see integration test for this issue as well&lt;/li&gt;
	&lt;li&gt;junit test the &quot;when&quot; is not really a &quot;when&quot; but rather &quot;then&quot; since the job result is captured only after execution of the commands and the execution of it is the real &quot;when&quot; ... as in WHEN i execute the command job THEN I capture the result and fail if result is not what I expect (true).&lt;/li&gt;
	&lt;li&gt;I would like to see a test case where we also try to modify from the command job the node to which user who is requestor have no write access. IIRC, the ctx.getUser() is called from AccessManagerImpl to test the permissions so I would suspect that in such setting test that would have been previously passing will fail. If this is indeed the case, we need to evaluate that this is correct behavior (I think it is). Again this might be easier implemented as integration test rather than unit test. Unless anything changed since 4.5, RepositoryTestCase is still skipping the security checks so it can&apos;t be used for this kind of test.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="115500" author="mgeljic" created="Tue, 3 Nov 2015 14:30:30 +0100"  >&lt;p&gt;Moving to 5.4.4; too short timespan to complete and evaluate side-effects if any.&lt;/p&gt;</comment>
                            <comment id="116626" author="oanh.thai" created="Mon, 9 Nov 2015 05:26:22 +0100"  >&lt;p&gt;&lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=had&quot; class=&quot;user-hover&quot; rel=&quot;had&quot;&gt;had&lt;/a&gt;, Thank you so much for your advice &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/biggrin.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;

&lt;p&gt;I agree with you it maybe run incorrectly if the command gets reused and on different thread. I will do integration test for this issue to ensure that we can use it later. I&apos;ll inform you when I finish the integration test. &lt;/p&gt;

&lt;p&gt;According to the case for junit test, i didn&apos;t quite get your idea. It would be great if you could elaborate it for me. Thanks in advance &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="116627" author="oanh.thai" created="Mon, 9 Nov 2015 05:39:25 +0100"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=mgeljic&quot; class=&quot;user-hover&quot; rel=&quot;mgeljic&quot;&gt;mgeljic&lt;/a&gt;, &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=had&quot; class=&quot;user-hover&quot; rel=&quot;had&quot;&gt;had&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While working with integration test for previous solution &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/biggrin.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;. I would like provide another simple solution &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/biggrin.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;. Of course it will fix this issue (the issue happens with publish async action) as well&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The problem part is here:&lt;/b&gt;&lt;br/&gt;
This part work correctly if we don&apos;t use the async action&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;private&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; getSafelyUserNameFromMgnlContext() {
        &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; userName = &quot;&quot;;
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (MgnlContext.getUser() != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            userName = MgnlContext.getUser().getName();
        }
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; userName;
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;b&gt;My approach&lt;/b&gt; is providing a new API in BaseVersionManager class:&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;
Version addVersion(&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Node node, &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Rule rule, &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; userName) 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And username will be getting from VersionCommand class:&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-object&quot;&gt;String&lt;/span&gt; userName = &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;;
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (ctx.containsKey(Context.ATTRIBUTE_REQUESTOR) &amp;amp;&amp;amp; ctx.get(Context.ATTRIBUTE_REQUESTOR) != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
                userName = ctx.get(Context.ATTRIBUTE_REQUESTOR).toString();
            }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here is my patch: &lt;a href=&quot;https://gist.github.com/oanhthai/613a11449f1c2cd26c69&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/oanhthai/613a11449f1c2cd26c69&lt;/a&gt;. Please feel free to review it&lt;/p&gt;</comment>
                            <comment id="116790" author="oanh.thai" created="Wed, 11 Nov 2015 10:59:26 +0100"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=mgeljic&quot; class=&quot;user-hover&quot; rel=&quot;mgeljic&quot;&gt;mgeljic&lt;/a&gt;, &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=had&quot; class=&quot;user-hover&quot; rel=&quot;had&quot;&gt;had&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As previous comments, I will create one integration test case where we try to modify from the context the requester name to which user who have no write access. This test case just supports for my solution 1 (which will alter code in Scheduler and Simple Context).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Test case:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Log in as superuser&lt;/li&gt;
	&lt;li&gt;Choose 1 page has child&lt;/li&gt;
	&lt;li&gt;Click to Test Publish action (This is custom action to modify the requester name)&lt;/li&gt;
	&lt;li&gt;Observe the version history&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Expectation:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;See &lt;b&gt;oriole&lt;/b&gt;&apos;s name (oriole is one test user)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Result:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;See &lt;b&gt;oriole&lt;/b&gt;&apos;s name&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The &lt;b&gt;oriole&lt;/b&gt; name instead of &lt;b&gt;superuser&lt;/b&gt; is observed because I do make a change to force to keep another user name whose user has read-only permission in pages app.&lt;/p&gt;

&lt;p&gt;There are some important parts to prepare test case: &lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Prepare action to modify context:
&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;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;TestActivationAction &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; ActivationAction {
    @Override
    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; Map&amp;lt;&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt;&amp;gt; buildParams(&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Item jcrItem) {
        Map&amp;lt;&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt;&amp;gt; params = &lt;span class=&quot;code-keyword&quot;&gt;super&lt;/span&gt;.buildParams(jcrItem);
        &lt;span class=&quot;code-comment&quot;&gt;// Change user has no write access in &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; instance
&lt;/span&gt;        params.put(Context.ATTRIBUTE_REQUESTOR, &lt;span class=&quot;code-quote&quot;&gt;&quot;oriole&quot;&lt;/span&gt;);
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; params;
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Prepare test case to ensure oriole will be observed instead of superuser in version history:
&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-comment&quot;&gt;// CHECK VERSIONS
&lt;/span&gt;        getActionBarItem(SHOW_VERSIONS_ACTION).click();

        &lt;span class=&quot;code-comment&quot;&gt;// CHECK THE TAB HEADER
&lt;/span&gt;        delay(&lt;span class=&quot;code-quote&quot;&gt;&quot;Waiting before check&quot;&lt;/span&gt;);
        &lt;span class=&quot;code-comment&quot;&gt;// Click on version drop-down to show versions
&lt;/span&gt;        getSelectTabElement(&lt;span class=&quot;code-quote&quot;&gt;&quot;Version&quot;&lt;/span&gt;).click();

        &lt;span class=&quot;code-comment&quot;&gt;// Check the first element in dropdown and make sure it contains eric
&lt;/span&gt;        WebElement table = getSelectedTableElement();
        assertTrue(table.findElements(By.xpath(&lt;span class=&quot;code-quote&quot;&gt;&quot;tbody/tr/td&quot;&lt;/span&gt;)).get(0).getText().contains(&lt;span class=&quot;code-quote&quot;&gt;&quot;(oriole)&quot;&lt;/span&gt;));

        &lt;span class=&quot;code-comment&quot;&gt;// CHECK THE TAB HEADER
&lt;/span&gt;        delay(&lt;span class=&quot;code-quote&quot;&gt;&quot;Waiting before check&quot;&lt;/span&gt;);
        &lt;span class=&quot;code-comment&quot;&gt;// Click on version drop-down to show versions
&lt;/span&gt;        getSelectTabElement(&lt;span class=&quot;code-quote&quot;&gt;&quot;Version&quot;&lt;/span&gt;).click();

        &lt;span class=&quot;code-comment&quot;&gt;// Check the first element in dropdown and make sure it contains eric
&lt;/span&gt;        WebElement table = getSelectedTableElement();
        assertTrue(table.findElements(By.xpath(&lt;span class=&quot;code-quote&quot;&gt;&quot;tbody/tr/td&quot;&lt;/span&gt;)).get(0).getText().contains(&lt;span class=&quot;code-quote&quot;&gt;&quot;(oriole)&quot;&lt;/span&gt;));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For more detail about test case, please feel free to review in &lt;a href=&quot;https://gist.github.com/oanhthai/bac0ab9df22793efcb2a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/oanhthai/bac0ab9df22793efcb2a&lt;/a&gt;. It includes the solution 1 and integration test. Magnolia version is 5.3.12-SNAPSHOT.&lt;/p&gt;
</comment>
                            <comment id="116814" author="mgeljic" created="Wed, 11 Nov 2015 17:30:57 +0100"  >&lt;p&gt;This was pretty long to digest, so I summarize the two approaches:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;A. Fix command job so that all &amp;#42;async&amp;#42; commands get executed &quot;on behalf&quot; of the original requestor.&lt;/b&gt;&lt;br/&gt;
&lt;b&gt;B. Fix only the versioning use case, by using requestor explicitly.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;In any case, bear in mind that the &lt;tt&gt;ATTRIBUTE_REQUESTOR&lt;/tt&gt; is a UI detail. Aside from the &lt;tt&gt;AbstractCommandAction&lt;/tt&gt;, commands can be executed directly via the &lt;tt&gt;CommandsManager&lt;/tt&gt;, so we have no guarantee that this attribute will always be available.&lt;/p&gt;

&lt;p&gt;Anyway, &lt;b&gt;I tend to prefer option A&lt;/b&gt;:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;has indeed more potential impact&lt;/li&gt;
	&lt;li&gt;more consistent with synchronous execution&lt;/li&gt;
	&lt;li&gt;prevents operations where requestor doesn&apos;t have permission&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;m not &lt;em&gt;that&lt;/em&gt; fond of the requestor notion &quot;leaking&quot; into the scheduler module, but I don&apos;t see an easy way around that (at least not under maintenance):&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The main purpose of the scheduler module is to trigger Cron jobs, some of them being backed by commands.&lt;/li&gt;
	&lt;li&gt;The UI just &quot;hijacked&quot; this functionality for async actions.
	&lt;ul&gt;
		&lt;li&gt;Async actions will eventually be rewritten at some point.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For the code discussion and review, please emit a PR (I won&apos;t comment here nor on the gists).&lt;br/&gt;
For testing, I think writing an integration/UI test might be overly complex. The permission test should be doable as a unit test imo.&lt;/p&gt;

&lt;p&gt;Thanks for your patience! &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="117420" author="ejervidalo" created="Tue, 24 Nov 2015 17:19:20 +0100"  >&lt;p&gt;For the records:&lt;br/&gt;
I agree on all points there. Concerning the leaking &quot;requestor&quot;: I don&apos;t like the naming, and I don&apos;t like that it was moved from WorkflowConstants to Context.&lt;br/&gt;
On the other hand, &lt;tt&gt;CommandJob&lt;/tt&gt; already reads:&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;
Context.ATTRIBUTE_PATH
Context.ATTRIBUTE_REPOSITORY
Context.ATTRIBUTE_UUID
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Only to resolve the UUID from the path. It shouldn&apos;t. The implementation assumes we&apos;re dealing with some sort of BaseRepositoryCommand. But that&apos;s another topic..&lt;/p&gt;

&lt;p&gt;I don&apos;t care about it reading another property from the context, but I don&apos;t like adding the user to the SimpleContext. I would read the user from the parameter map and pass it to &lt;tt&gt;info.magnolia.cms.core.version.BaseVersionManager#addVersion()&lt;/tt&gt;&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;
VersionCommand#setUser and VersionCommand#getUser
BaseVersionManager#addVersion(&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Node node, &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Rule rule, &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; userName)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;As Mika already pointed out: by adding the user to SimpleContext, we will have inconsistency between the username and the permissions used to access JCR. &lt;br/&gt;
Ideally we would not use SystemContext in that case, but set-up a proper user-context with the correct permissions.&lt;/p&gt;</comment>
                            <comment id="117477" author="pmundt" created="Wed, 25 Nov 2015 13:53:31 +0100"  >&lt;p&gt;Issue was reopen when &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=ejervidalo&quot; class=&quot;user-hover&quot; rel=&quot;ejervidalo&quot;&gt;ejervidalo&lt;/a&gt; declined pull request #4 (and oldie) on Bitbucket Server &#8211; Some min. ago.&lt;/p&gt;

&lt;p&gt;Re-closing this issue.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10160">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="49014">MGNLUI-3671</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10040">
                    <name>causality</name>
                                                                <inwardlinks description="is causing">
                                                        </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_14169" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Bug DoR</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                        
        <div style="margin-bottom: 8px;">
                            <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge" 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>0/2</span></span></div>
                    
            <div class="checklist-progress-bar-wrapper" style="">
        <div class="checklist-progress-bar" style="position: relative; width: 100%; background-color: #cccccc; margin-bottom: 2px; margin-top: 5px;">
                        <div class="checklist-progress" style="display: block; float: none; width: 0%; height: 2px; background: #14892c;">
                            </div>
        </div>
    </div>
        </div>
    
                                    <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Steps to reproduce, expected, and actual results filled</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Affected version filled</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </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>Mon, 26 Oct 2015 12:44:18 +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, 12 weeks, 4 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>9.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>ejervidalo</customfieldvalue>
            <customfieldvalue>had</customfieldvalue>
            <customfieldvalue>mgeljic</customfieldvalue>
            <customfieldvalue>oanh.thai</customfieldvalue>
            <customfieldvalue>pmundt</customfieldvalue>
            <customfieldvalue>rgange</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzzzzn:9a90vhlzym9i</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10245" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="143">Basel 20</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10242" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_14168" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Task DoD</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                        
        <div style="margin-bottom: 8px;">
                            <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge" 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>0/6</span></span></div>
                    
            <div class="checklist-progress-bar-wrapper" style="">
        <div class="checklist-progress-bar" style="position: relative; width: 100%; background-color: #cccccc; margin-bottom: 2px; margin-top: 5px;">
                        <div class="checklist-progress" style="display: block; float: none; width: 0%; height: 2px; background: #14892c;">
                            </div>
        </div>
    </div>
        </div>
    
                                    <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Doc/release notes changes? Comment present?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Downstream builds green?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Solution information and context easily available?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span><strong>Tests</strong></span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span><strong>FixVersion</strong> filled and not yet released</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><rect fill="#EFF4FB" height="17.5" rx="2.5" stroke="#ADBBD0" width="18" x="0.44141" y="3.94141"/></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Architecture Decision Record (<strong>ADR</strong>)</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                            ]]>
    </checklist>


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