<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 06:57:25 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>[MGNLREST-180] Handle NPE of nodeTypes</title>
                <link>https://jira.magnolia-cms.com/browse/MGNLREST-180</link>
                <project id="10674" key="MGNLREST">Magnolia REST Framework</project>
                    <description>&lt;p&gt;We should implement some basic validation of endpoint configurations to avoid a situation like in &lt;b&gt;1)&lt;/b&gt; below the first line.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The below configs were all done in YAML under &lt;tt&gt;/tours/restEndpoints&lt;/tt&gt;&lt;/li&gt;
	&lt;li&gt;The endpoint is called &lt;tt&gt;ep&lt;/tt&gt;&lt;/li&gt;
	&lt;li&gt;No &quot;PROBLEMS&quot; announced in the &lt;em&gt;Definitions app&lt;/em&gt; after registration of the erroneous config.&lt;/li&gt;
	&lt;li&gt;ENVs:
	&lt;ul&gt;
		&lt;li&gt;Ubuntu MATE 16.04&lt;/li&gt;
		&lt;li&gt;magnolia-enterprise-pro-demo-bundle-5.6.4-20180315.123450-32-tomcat-bundle&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;hr /&gt;
&lt;p&gt;&lt;b&gt;1) A non-list definition of &lt;tt&gt;nodeTypes&lt;/tt&gt; for &lt;tt&gt;ep&lt;/tt&gt;:&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;1a) The erry configuration:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;class: info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpointDefinition
workspace: website
rootPath: /
nodeTypes: mgnl:page
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;1b) Console messages (upon saving this):&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;2018-03-15 16:33:24,041 INFO  info.magnolia.rest.RestDispatcherServlet          : Endpoint ep is registered with base path: [context]/ep

2018-03-15 16:33:24,041 INFO  agnolia.config.source.yaml.YamlConfigurationSource: Registered definition from YAML file [/tours/restEndpoints/ep.yaml]: [restEndpoint] definition [ep] with reference id: [ep] from module [tours] at [ep]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/information.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; 1ca) A request that worked fine with the erry config:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;curl -X GET &apos;http://localhost:8080/magnoliaAuthor/.rest/ep/travel/about&apos; -u superuser:superuser

{&quot;@name&quot;:&quot;about&quot;,&quot;@path&quot;:&quot;/travel/about&quot;,&quot;@id&quot;:&quot;808ebe4c-72b2-49f1-b9f7-e7db22bce02f&quot;,&quot;@nodeType&quot;:&quot;mgnl:page&quot;,&quot;jcr:createdBy&quot;:&quot;admin&quot;,&quot;hideInNav&quot;:&quot;false&quot;,&quot;mgnl:template&quot;:&quot;travel-demo:pages/standard&quot;,&quot;mgnl:lastActivatedBy&quot;:&quot;superuser&quot;,&quot;mgnl:lastActivated&quot;:&quot;2018-03-15T15:17:16.842+01:00&quot;,&quot;jcr:created&quot;:&quot;2018-03-15T15:16:42.616+01:00&quot;,&quot;mgnl:created&quot;:&quot;2015-02-02T17:34:28.816+01:00&quot;,&quot;mgnl:createdBy&quot;:&quot;superuser&quot;,&quot;title&quot;:&quot;About&quot;,&quot;mgnl:lastModified&quot;:&quot;2015-10-27T13:50:28.322+01:00&quot;,&quot;mgnl:activationStatus&quot;:&quot;true&quot;,&quot;mgnl:lastModifiedBy&quot;:&quot;superuser&quot;,&quot;@nodes&quot;:[]}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/warning.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; 1cb) A request that failed with the config (+stacktrace):&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;curl -X GET &apos;http://localhost:8080/magnoliaAuthor/.rest/ep/?mgnl:lastModified\[lte\]=2015-06-03&apos; -u superuser:superuser

{&quot;error&quot;:{&quot;code&quot;:&quot;unknown&quot;,&quot;message&quot;:null}}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;2018-03-15 16:35:55,760 ERROR info.magnolia.rest.RestExceptionMapper            : Exception thrown executing REST endpoint, returning 500
java.lang.NullPointerException: null
	at java.util.ArrayList.addAll(ArrayList.java:581) ~[?:1.8.0_151]
	at info.magnolia.rest.delivery.jcr.QueryBuilder.nodeTypes(QueryBuilder.java:116) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?]
	at info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpoint$2.exec(JcrDeliveryEndpoint.java:226) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?]
	at info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpoint$2.exec(JcrDeliveryEndpoint.java:219) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?]
	at info.magnolia.cms.security.JCRSessionOp.exec(JCRSessionOp.java:68) ~[magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpoint.doSessionOperation(JcrDeliveryEndpoint.java:256) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?]
	at info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpoint.queryNodes(JcrDeliveryEndpoint.java:219) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140) ~[resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294) ~[resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248) ~[resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235) ~[resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [servlet-api.jar:?]
	at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:148) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.virtualuri.VirtualUriFilter.doFilter(VirtualUriFilter.java:98) [magnolia-virtual-uri-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58) [magnolia-cache-core-5.6.1.jar:?]
	at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:67) [magnolia-cache-core-5.6.1.jar:?]
	at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:220) [magnolia-cache-core-5.6.1.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:89) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:77) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.multisite.filters.CrossSiteSecurityFilter.doFilter(CrossSiteSecurityFilter.java:104) [magnolia-module-multisite-1.3.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:84) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:119) [magnolia-site-1.2.1-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.multisite.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:120) [magnolia-module-multisite-1.3.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:64) [magnolia-module-enterprise-5.6.4-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:111) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.personalization.preview.filter.PreviewFilter.doFilter(PreviewFilter.java:92) [magnolia-personalization-preview-app-1.5.2.jar:?]
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) [magnolia-personalization-integration-1.5.2.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) [magnolia-personalization-integration-1.5.2.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) [magnolia-personalization-integration-1.5.2.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) [magnolia-personalization-integration-1.5.2.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:155) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:110) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:96) [magnolia-core-5.6.3-SNAPSHOT.jar:?]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) [catalina.jar:8.5.5]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [catalina.jar:8.5.5]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [catalina.jar:8.5.5]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) [catalina.jar:8.5.5]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [catalina.jar:8.5.5]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [catalina.jar:8.5.5]
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) [catalina.jar:8.5.5]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [catalina.jar:8.5.5]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) [catalina.jar:8.5.5]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) [tomcat-coyote.jar:8.5.5]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-coyote.jar:8.5.5]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) [tomcat-coyote.jar:8.5.5]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) [tomcat-coyote.jar:8.5.5]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:8.5.5]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_151]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.5.5]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;b&gt;2 ) A correctly functioning configuration&lt;/b&gt; (just for comparison)&lt;/p&gt;

&lt;p&gt;2a) The configuration:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;class: info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpointDefinition
 workspace: website
 rootPath: /
 nodeTypes:
 - mgnl:page
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;2b) Console messages (upon saving this):&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;2018-03-15 16:25:07,674 INFO  info.magnolia.rest.RestDispatcherServlet          : Endpoint ep is registered with base path: [context]/ep

2018-03-15 16:25:07,674 INFO  agnolia.config.source.yaml.YamlConfigurationSource: Registered definition from YAML file [/tours/restEndpoints/ep.yaml]: [restEndpoint] definition [ep] with reference id: [ep] from module [tours] at [ep]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/check.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; 2ca) A request that worked fine with the config:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;curl -X GET &apos;http://localhost:8080/magnoliaAuthor/.rest/ep/travel/about&apos; -u superuser:superuser

{&quot;@name&quot;:&quot;about&quot;,&quot;@path&quot;:&quot;/travel/about&quot;,&quot;@id&quot;:&quot;808ebe4c-72b2-49f1-b9f7-e7db22bce02f&quot;,&quot;@nodeType&quot;:&quot;mgnl:page&quot;,&quot;jcr:createdBy&quot;:&quot;admin&quot;,&quot;hideInNav&quot;:&quot;false&quot;,&quot;mgnl:template&quot;:&quot;travel-demo:pages/standard&quot;,&quot;mgnl:lastActivatedBy&quot;:&quot;superuser&quot;,&quot;mgnl:lastActivated&quot;:&quot;2018-03-15T15:17:16.842+01:00&quot;,&quot;jcr:created&quot;:&quot;2018-03-15T15:16:42.616+01:00&quot;,&quot;mgnl:created&quot;:&quot;2015-02-02T17:34:28.816+01:00&quot;,&quot;mgnl:createdBy&quot;:&quot;superuser&quot;,&quot;title&quot;:&quot;About&quot;,&quot;mgnl:lastModified&quot;:&quot;2015-10-27T13:50:28.322+01:00&quot;,&quot;mgnl:activationStatus&quot;:&quot;true&quot;,&quot;mgnl:lastModifiedBy&quot;:&quot;superuser&quot;,&quot;@nodes&quot;:[]}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/check.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; 2cb) Another request that worked fine with the config:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;curl -X GET &apos;http://localhost:8080/magnoliaAuthor/.rest/ep/?mgnl:lastModified\[lte\]=2015-06-03&apos; -u superuser:superuser

{&quot;results&quot;:[{&quot;@name&quot;:&quot;meta&quot;,&quot;@path&quot;:&quot;/travel/meta&quot;,&quot;@id&quot;:&quot;7ebd74f1-c6f7-4307-9953-afd549118a56&quot;,&quot;@nodeType&quot;:&quot;mgnl:page&quot;,&quot;jcr:createdBy&quot;:&quot;admin&quot;,&quot;hideInNav&quot;:&quot;true&quot;,&quot;mgnl:template&quot;:&quot;travel-demo:pages/standard&quot;,&quot;mgnl:lastActivatedBy&quot;:&quot;superuser&quot;,&quot;jcr:created&quot;:&quot;2018-03-15T15:16:42.722+01:00&quot;,&quot;mgnl:lastActivated&quot;:&quot;2018-03-15T15:17:16.842+01:00&quot;,&quot;mgnl:created&quot;:&quot;2015-02-02T20:58:23.939+01:00&quot;,&quot;mgnl:createdBy&quot;:&quot;superuser&quot;,&quot;title&quot;:&quot;Container for meta pages&quot;,&quot;mgnl:lastModified&quot;:&quot;2015-06-03T20:37:49.283+02:00&quot;,&quot;mgnl:activationStatus&quot;:&quot;true&quot;,&quot;mgnl:lastModifiedBy&quot;:&quot;superuser&quot;,&quot;@nodes&quot;:[]}]}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="65023">MGNLREST-180</key>
            <summary>Handle NPE of nodeTypes</summary>
                <type id="3" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10898&amp;avatarType=issuetype">Task</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="hieu.nguyen">Hieu Nguyen Duc</assignee>
                                    <reporter username="mdrapela">Martin Dr&#225;pela</reporter>
                        <labels>
                    </labels>
                <created>Fri, 16 Mar 2018 09:30:03 +0100</created>
                <updated>Thu, 16 Apr 2020 10:02:37 +0200</updated>
                            <resolved>Fri, 23 Mar 2018 08:27:43 +0100</resolved>
                                    <version>2.1</version>
                                    <fixVersion>2.1.1</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                    <workratio workratioPercent="81"/>
                                    <progress percentage="100">
                                    <originalProgress>
                                                    <row percentage="100" backgroundColor="#89afd7"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="81" backgroundColor="#51a825"/>
                                                    <row percentage="0" backgroundColor="#ec8e00"/>
                                                    <row percentage="19" backgroundColor="transparent"/>
                                            </currentProgress>
                            </progress>
                                    <aggregateprogress percentage="100">
                                    <originalProgress>
                                                    <row percentage="100" backgroundColor="#89afd7"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="81" backgroundColor="#51a825"/>
                                                    <row percentage="0" backgroundColor="#ec8e00"/>
                                                    <row percentage="19" backgroundColor="transparent"/>
                                            </currentProgress>
                            </aggregateprogress>
                                    <timeoriginalestimate seconds="57600">2d</timeoriginalestimate>
                            <timeestimate seconds="0">0d</timeestimate>
                            <timespent seconds="46800">1d 5h</timespent>
                                <comments>
                            <comment id="157506" author="mgeljic" created="Fri, 16 Mar 2018 11:35:09 +0100"  >&lt;ul&gt;
	&lt;li&gt;Only thing to do on the rest side is to guard against the NPEs in case of queries.&lt;/li&gt;
	&lt;li&gt;We may clone ticket this into MAGNOLIA to report definition problems when there is a type mismatch between YAML and the definition target-type.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="157571" author="hieu.nguyen" created="Mon, 19 Mar 2018 17:59:02 +0100"  >&lt;ul&gt;
	&lt;li&gt;Throwing BadRequestException seems more reasonable than falling back to a list containing &lt;tt&gt;mgnl:content&lt;/tt&gt;&#160;because it reminds users that they are doing something wrong and need to fix the request to proceed&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.magnolia-cms.com/browse/MAGNOLIA-7283&quot; title=&quot;Type mismatch in Map2BeanTransformer shows no problem&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MAGNOLIA-7283&quot;&gt;&lt;del&gt;MAGNOLIA-7283&lt;/del&gt;&lt;/a&gt;&apos;s been filed for type mismatch warning&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="157637" author="mgeljic" created="Tue, 20 Mar 2018 16:46:59 +0100"  >&lt;p&gt;Hmmm, I generally agree with bad-request when it is &lt;em&gt;indeed&lt;/em&gt; the user/consumer&apos;s fault (&lt;em&gt;e.g.&lt;/em&gt; bad parameter format). Here the consumer is not doing anything wrong, and he cannot necessarily fix it.&lt;/p&gt;

&lt;p&gt;When the problem is on the developer/provider&apos;s side, he/she is responsible for shipping an endpoint-definition without problems. &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>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10160">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="65074">MAGNOLIA-7283</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_14166" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Acceptance criteria</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>magnolia-cms.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 16 Mar 2018 11:35:09 +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_10246" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>MAGNOLIA-7206</customfieldvalue>
                        </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>mdrapela</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 47 weeks, 5 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>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>hieu.nguyen</customfieldvalue>
            <customfieldvalue>mdrapela</customfieldvalue>
            <customfieldvalue>mgeljic</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i07u1j:</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="687">Saigon 139</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10242" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_14167" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Task DoR</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_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>