<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 04:14:11 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-6400] Map2Bean tranformer throws NPE if definition class uses MgnlContext</title>
                <link>https://jira.magnolia-cms.com/browse/MAGNOLIA-6400</link>
                <project id="10000" key="MAGNOLIA">Magnolia</project>
                    <description>&lt;p&gt;For an example of this see &lt;tt&gt;info.magnolia.security.app.dialog.field.SystemLanguagesFieldDefinition&lt;/tt&gt;. It has a method &lt;tt&gt;getOptions()&lt;/tt&gt; which uses &lt;tt&gt;MgnlContext&lt;/tt&gt;. &lt;/p&gt;

&lt;p&gt;When I configure this field in the JCR I never pass through &lt;tt&gt;SystemLanguagesFieldDefinition#getOptions()&lt;/tt&gt;. So that is why we don&apos;t see this &lt;tt&gt;MgnlContext&lt;/tt&gt; issue when configuring the dialog in JCR.&lt;/p&gt;

&lt;p&gt;On the other hand, when configuring in yaml, when I save the dialog I pass through &lt;tt&gt;SystemLanguagesFieldDefinition#getOptions()&lt;/tt&gt; for whatever reason. &lt;/p&gt;

&lt;p&gt;The dialog is still usable but you do receive a warning when the dialog saves. A possible workaround would be to move the loading of options to the factory class or just ignore the warning.&lt;/p&gt;</description>
                <environment></environment>
        <key id="48209">MAGNOLIA-6400</key>
            <summary>Map2Bean tranformer throws NPE if definition class uses MgnlContext</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="ngoc.nguyenthanh">Ngoc Nguyenthanh</assignee>
                                    <reporter username="rgange">Richard Gange</reporter>
                        <labels>
                            <label>Map2Bean</label>
                            <label>quickwin</label>
                            <label>support</label>
                    </labels>
                <created>Sun, 4 Oct 2015 21:26:18 +0200</created>
                <updated>Fri, 13 Nov 2015 05:03:55 +0100</updated>
                            <resolved>Tue, 10 Nov 2015 11:01:54 +0100</resolved>
                                    <version>5.4.2</version>
                                    <fixVersion>5.4.4</fixVersion>
                                    <component>configuration</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                    <workratio workratioPercent="2250"/>
                                    <progress percentage="75">
                                    <originalProgress>
                                                    <row percentage="3" backgroundColor="#89afd7"/>
                                                    <row percentage="97" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="75" backgroundColor="#51a825"/>
                                                    <row percentage="25" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </progress>
                                    <aggregateprogress percentage="75">
                                    <originalProgress>
                                                    <row percentage="3" backgroundColor="#89afd7"/>
                                                    <row percentage="97" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="75" backgroundColor="#51a825"/>
                                                    <row percentage="25" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </aggregateprogress>
                                    <timeoriginalestimate seconds="7200">0.25d</timeoriginalestimate>
                            <timeestimate seconds="54000">1d 7h</timeestimate>
                            <timespent seconds="162000">5d 5h</timespent>
                                <comments>
                            <comment id="114997" author="ngoc.nguyenthanh" created="Fri, 23 Oct 2015 06:06:58 +0200"  >&lt;p&gt;Reproduce:&lt;br/&gt;
I have added a method to test in &lt;tt&gt;info.magnolia.security.app.dialog.field.SystemLanguagesFieldDefinitionTest&lt;/tt&gt;&lt;br/&gt;
in order to reproduce the bug.&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 shouldPassWhenContextIsNull() &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; Exception {

        &lt;span class=&quot;code-comment&quot;&gt;// GIVEN
&lt;/span&gt;        MgnlContext.setInstance(&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;);
        &lt;span class=&quot;code-keyword&quot;&gt;final&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; map = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; LinkedHashMap&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.put(&lt;span class=&quot;code-quote&quot;&gt;&quot;class&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;info.magnolia.security.app.dialog.field.SystemLanguagesFieldDefinition&quot;&lt;/span&gt;);
        MockComponentProvider componentProvider = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; MockComponentProvider();
        TypeMapping mapping = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; TypeMappingImpl();
        PreConfiguredBeanUtils beanUtils = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; PreConfiguredBeanUtils();
        Map2BeanTransformer map2BeanTransformer = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Map2BeanTransformer(componentProvider, mapping, beanUtils);

        &lt;span class=&quot;code-comment&quot;&gt;// WHEN
&lt;/span&gt;        SystemLanguagesFieldDefinition definition = map2BeanTransformer.toBean(map, SystemLanguagesFieldDefinition.class);

        &lt;span class=&quot;code-comment&quot;&gt;// THEN
&lt;/span&gt;        assertTrue(definition != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;);
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="114998" author="ngoc.nguyenthanh" created="Fri, 23 Oct 2015 06:08:26 +0200"  >&lt;p&gt;Solution 1: Fix the bug with minimum impaction.&lt;br/&gt;
Add patch in &lt;tt&gt;info.magnolia.security.app.dialog.field.SystemLanguagesFieldDefinition#getOptions&lt;/tt&gt;&lt;br/&gt;
Implementation 1:&lt;br/&gt;
Simple is by pass. If it have no context then return an empty list.&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; (!MgnlContext.hasInstance()) {
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; options;
        }
        Locale currentLocale = MgnlContext.getLocale();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Pros: Simple, ignore unwanted state.&lt;br/&gt;
Cons: Just fix exact this class. Don&apos;t fix the root cause.&lt;/p&gt;

&lt;p&gt;Implementation 2:&lt;br/&gt;
Try to get Locale by fallbackLanguage of system or default language of JVM if any.&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;
        Locale currentLocale = &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;;
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (MgnlContext.hasInstance()) {
            currentLocale = MgnlContext.getLocale();
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
            &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; fallbackLanguagePath = &lt;span class=&quot;code-quote&quot;&gt;&quot;fallbackLanguage&quot;&lt;/span&gt;;
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (systemLanguages.hasProperty(fallbackLanguagePath)) {
                &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; langCode = systemLanguages.getProperty(fallbackLanguagePath).getString();
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (StringUtils.isNotEmpty(langCode)) {
                    currentLocale = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Locale(langCode);
                }
            }
        }
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (currentLocale == &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            currentLocale = Locale.getDefault();
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Pros: Same with implementation 1 but add ability to get a fallback Locale&lt;br/&gt;
Cons: Locale is unnecessary in this case. But useful in some cases. Don&#8217;t fix the root cause.&lt;/p&gt;

&lt;p&gt;Solution impaction: &lt;tt&gt;info.magnolia.security.app.dialog.field.SystemLanguagesFieldDefinitionTest&lt;/tt&gt; in &lt;tt&gt;security-app&lt;/tt&gt; module.&lt;/p&gt;</comment>
                            <comment id="114999" author="rgange" created="Fri, 23 Oct 2015 06:20:04 +0200"  >&lt;p&gt;IMHO We should try to figure why this behavior is different in Map2Bean. In Node2Bean we don&apos;t have this issue, why? I think this indicates there is an issue with Map2Bean that needs to be fixed. &lt;/p&gt;</comment>
                            <comment id="115001" author="ngoc.nguyenthanh" created="Fri, 23 Oct 2015 06:23:13 +0200"  >&lt;p&gt;Solution 2: Fix the root cause related to &lt;tt&gt;Map2BeanTransformer&lt;/tt&gt; and &lt;tt&gt;Node2BeanTransformer&lt;/tt&gt; didn&#8217;t provide &lt;tt&gt;MgnlContext&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;From &lt;tt&gt;org.apache.commons.beanutils.PropertyUtilsBean#getIndexedProperty&lt;/tt&gt; (line:542 - Call the property getter and return the value)&lt;br/&gt;
When Map2Bean or Node2Bean mechanism transform yaml or node to bean, it will call get/ set methods in bean object. So it trigger &lt;tt&gt;info.magnolia.security.app.dialog.field.SystemLanguagesFieldDefinition#getOptions&lt;/tt&gt; and throw NPE due to &lt;tt&gt;MgnlContext&lt;/tt&gt; is null.&lt;br/&gt;
Null context is the root cause of the bug but it&#8217;s not the root cause of the issue. So what is the root cause?&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Regard to YAML file, it will be observed for changes from &lt;tt&gt;info.magnolia.config.source.yaml.YamlConfigurationSource&lt;/tt&gt; by using &lt;tt&gt;info.magnolia.resourceloader.ResourceOrigin#watchForChanges&lt;/tt&gt; then it will call &lt;tt&gt;info.magnolia.config.source.yaml.YamlConfigurationSource#loadAndRegister&lt;/tt&gt; to transform to bean from data read from yaml file if any changes.&lt;/li&gt;
	&lt;li&gt;Regard to JCR node, it will be observed for changes from &lt;tt&gt;info.magnolia.config.source.jcr.JcrConfigurationSource&lt;/tt&gt; by using &lt;tt&gt;info.magnolia.config.source.jcr.RegistryBasedObservingManager&lt;/tt&gt; and reload if needed and then transform node to bean by using Node2Bean meachanism in &lt;tt&gt;info.magnolia.config.source.jcr.JcrConfigurationSource#newProvider&lt;/tt&gt;&lt;br/&gt;
Then I believe that we need to initialize appropriate context when Map2Bean or Node2Bean are running in &lt;tt&gt;info.magnolia.config.source.yaml.YamlConfigurationSource#loadAndRegister&lt;/tt&gt; and &lt;tt&gt;info.magnolia.config.source.jcr.JcrConfigurationSource#newProvider&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&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-comment&quot;&gt;// init context
&lt;/span&gt;MgnlContext.setInstance(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; SimpleContext(Components.getComponent(SystemContext.class)));
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Impaction: &lt;tt&gt;magnolia-configuration&lt;/tt&gt; module&lt;br/&gt;
Pros: Fix the root cause&lt;br/&gt;
Cons: widespread impact, need more time for fixing and testing.&lt;/p&gt;</comment>
                            <comment id="115002" author="rgange" created="Fri, 23 Oct 2015 06:25:25 +0200"  >&lt;blockquote&gt;
&lt;p&gt;When Map2Bean or Node2Bean mechanism transform yaml or node to bean, it will call get/ set methods in bean object. So it trigger info.magnolia.security.app.dialog.field.SystemLanguagesFieldDefinition#getOptions and throw NPE due to MgnlContext is null.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This isn&apos;t an issue in Node2Bean...&lt;/p&gt;</comment>
                            <comment id="115003" author="ngoc.nguyenthanh" created="Fri, 23 Oct 2015 06:25:36 +0200"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=rgange&quot; class=&quot;user-hover&quot; rel=&quot;rgange&quot;&gt;rgange&lt;/a&gt; We saw some error logs look like the same in Node2Bean. Could you please see my solution 2 above and give me some comments? Thanks&lt;/p&gt;</comment>
                            <comment id="115005" author="ngoc.nguyenthanh" created="Fri, 23 Oct 2015 06:27:33 +0200"  >&lt;p&gt;I have run the unit-test, so the bug has been introduced from 5.4. I didn&#8217;t test for 5.3 and below.&lt;/p&gt;</comment>
                            <comment id="115006" author="ngoc.nguyenthanh" created="Fri, 23 Oct 2015 06:28:38 +0200"  >&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; Please have a look and give me some comments. Thanks&lt;/p&gt;</comment>
                            <comment id="115007" author="rgange" created="Fri, 23 Oct 2015 06:35:47 +0200"  >&lt;blockquote&gt;
&lt;p&gt;We saw some error logs look like the same in Node2Bean. &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Can I see your stack trace because I cannot reproduce it using the Node2Bean mechanism (a.k.a configuring in config app)? If Node2Bean had this issue wouldn&apos;t we had seen it a long time ago? Map2Bean is newer. I think the issue is Map2Bean might be calling every setter rather than just the setters for configured properties. Which would be inefficient. I don&apos;t know that for sure though, it&apos;s just my hunch.  &lt;/p&gt;</comment>
                            <comment id="115008" author="sang.ngo" created="Fri, 23 Oct 2015 06:38:20 +0200"  >&lt;p&gt;&lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=rgange&quot; class=&quot;user-hover&quot; rel=&quot;rgange&quot;&gt;rgange&lt;/a&gt;, I don&apos;t know Node2Bean is error or not, but when I import a command config under &lt;tt&gt;dam-app&lt;/tt&gt;, the error is the same. &lt;br/&gt;
See log trace at &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;https://jira.magnolia-cms.com/secure/attachment/30800/30800_log-trace-import-command.txt&quot; title=&quot;log-trace-import-command.txt attached to MAGNOLIA-6400&quot;&gt;log-trace-import-command.txt&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=ngoc.nguyenthanh&quot; class=&quot;user-hover&quot; rel=&quot;ngoc.nguyenthanh&quot;&gt;ngoc.nguyenthanh&lt;/a&gt; Please investigate too.&lt;/p&gt;</comment>
                            <comment id="115053" author="rgange" created="Fri, 23 Oct 2015 17:15:14 +0200"  >&lt;p&gt;&lt;a href=&quot;https://jira.magnolia-cms.com/secure/ViewProfile.jspa?name=sang.ngo&quot; class=&quot;user-hover&quot; rel=&quot;sang.ngo&quot;&gt;sang.ngo&lt;/a&gt; Thanks for that. But this is not the same issue I reported. You mentioned:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;but when I import a command config under dam-app, the error is the same.  &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;It&apos;s not the same. The root cause is the same, MgnlContext not set, but not for the same reason. In this case guice cannot inject the context . That&apos;s different and should be investigated in another ticket. &lt;/p&gt;

&lt;p&gt;My issue is this. Try and configure this field on a dialog in the JCR using &lt;tt&gt;SystemLanguagesFieldDefinition&lt;/tt&gt;. After you configure the field&apos;s class property to &lt;tt&gt;SystemLanguagesFieldDefinition&lt;/tt&gt; everything works fine. No context error. &lt;/p&gt;

&lt;p&gt;Now try and configure that same field in a dialog in YAML. When you save the YAML file it fails. &lt;/p&gt;

&lt;p&gt;So what I&apos;m trying to figure out here is why is &lt;tt&gt;getOptions()&lt;/tt&gt; called when I configure in YAML. Why is a &lt;tt&gt;get&lt;/tt&gt; function being called in a &lt;tt&gt;set&lt;/tt&gt; scenario. When I save my configuration the bean should be &lt;tt&gt;set&lt;/tt&gt; for next use. &lt;/p&gt;
</comment>
                            <comment id="115280" author="mgeljic" created="Wed, 28 Oct 2015 19:11:19 +0100"  >&lt;p&gt;Hi guys!&lt;/p&gt;

&lt;h6&gt;&lt;a name=&quot;Map2Beanvs.Node2Bean&quot;&gt;&lt;/a&gt;Map2Bean vs. Node2Bean&lt;/h6&gt;
&lt;p&gt;Let&apos;s leave the command issue apart, even if symptoms are similar; I also agree w/ Rich, it must first be understood why reloading this &lt;tt&gt;SystemLanguagesFieldDefinition&lt;/tt&gt; results in an NPE under map2bean, and not under node2bean (which I can confirm).&lt;/p&gt;

&lt;p&gt;And looking that up (drumroll), the issue stems from &lt;tt&gt;Map2BeanTransformer&lt;/tt&gt; invoking &lt;tt&gt;BeanUtilsBean#describe&lt;/tt&gt;; (&lt;em&gt;node2bean&lt;/em&gt; doesn&apos;t do that). Reading its javadoc:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Return the entire set of properties for which the specified bean provides a read method. This map contains the to &lt;b&gt;String converted property values&lt;/b&gt; for all properties for which a read method is provided.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;In effect, this means that getters are actually called &quot;indirectly&quot; by &lt;em&gt;map2bean&lt;/em&gt;. Besides, we don&apos;t care about those string-converted values, we don&apos;t use them.&lt;br/&gt;
Those 2bean transformers &lt;b&gt;should only &lt;em&gt;set&lt;/em&gt; bean properties&lt;/b&gt;, so &lt;tt&gt;Map2BeanTransformer&lt;/tt&gt; shouldn&apos;t use &lt;tt&gt;BeanUtilsBean#describe&lt;/tt&gt;.&lt;/p&gt;

&lt;h6&gt;&lt;a name=&quot;MgnlContextvs.Definitions&quot;&gt;&lt;/a&gt;MgnlContext vs. Definitions&lt;/h6&gt;
&lt;p&gt;&lt;b&gt;No-go. Ever. Period.&lt;/b&gt; &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;ol&gt;
	&lt;li&gt;&lt;em&gt;Startup:&lt;/em&gt; Configuration is loaded once per instance, and is shared between all components, users, etc.
	&lt;ul&gt;
		&lt;li&gt;Making definitions return contextual info (e.g. &lt;tt&gt;currentLocale&lt;/tt&gt;) defeats the purpose of having a single, valid, reliable configuration for all.&lt;/li&gt;
		&lt;li&gt;We don&apos;t get the NPE upon startup, only because we&apos;re lucky to be in system context.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Reload&lt;/em&gt; is typically done asynchronously, be it via JCR or file observation.
	&lt;ul&gt;
		&lt;li&gt;Indeed in the thread executing file observation, there is rightfully no &lt;tt&gt;Context&lt;/tt&gt;.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;So what should we do?&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;b&gt;Definitions should always be stupid POJOs&lt;/b&gt;.&lt;/li&gt;
	&lt;li&gt;The logic in &lt;tt&gt;#getOptions()&lt;/tt&gt; should be moved to a custom &lt;tt&gt;SelectFieldFactory&lt;/tt&gt;, overriding &lt;tt&gt;#getSelectFieldOptionDefinition()&lt;/tt&gt;
	&lt;ul&gt;
		&lt;li&gt;the &lt;tt&gt;FieldTypeDefinition&lt;/tt&gt; should be registered in in JCR config, under &lt;em&gt;security-app&lt;/em&gt; module.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I will create a new ticket for this.&lt;/p&gt;</comment>
                            <comment id="116730" author="ngoc.nguyenthanh" created="Tue, 10 Nov 2015 11:01:54 +0100"  >&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Fixed by replace &lt;tt&gt;BeanUtilsBean#describe&lt;/tt&gt; by &lt;tt&gt;org.apache.commons.beanutils.PropertyUtilsBean#getPropertyDescriptors&lt;/tt&gt; in order to prevent Map2BeanTransformer call getters while trying to resolve bean object.&lt;/li&gt;
	&lt;li&gt;Add a unit-test to make sure all getters should not be called after bean object has been resolved.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10160">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="48658">MGNLUI-3637</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10040">
                    <name>causality</name>
                                                                <inwardlinks description="is causing">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="30800" name="log-trace-import-command.txt" size="22655" author="sang.ngo" created="Fri, 23 Oct 2015 06:37:25 +0200"/>
                    </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>Fri, 23 Oct 2015 06:06:58 +0200</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, 14 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>13.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>mgeljic</customfieldvalue>
            <customfieldvalue>ngoc.nguyenthanh</customfieldvalue>
            <customfieldvalue>rgange</customfieldvalue>
            <customfieldvalue>sang.ngo</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02aer:</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="122">Saigon 15</customfieldvalue>
    <customfieldvalue id="136">Saigon 18</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>