Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> productLayout.getLayoutSet  [in template "20115#20151#196977" at line 11, column 67]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign docsDownloadURL = portalUtil...  [in template "20115#20151#196977" at line 11, column 9]
----
1<@leonardo.articleInfo .vars "SP-Product-complete"/> 
2<#assign rndNamespace = randomNamespace> 
3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
4 
5<#assign jArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) > 
6 
7<#assign productLayout = (jArticle.getLayout()!)> 
8 
9<#assign docsDownloadURL = ''> 
10<#if (layout.getGroup().getGroupId()) != (jArticle.getGroupId())> 
11	<#assign docsDownloadURL = portalUtil.getVirtualHostname (productLayout.getLayoutSet())> 
12	<#if (docsDownloadURL)?has_content && (docsDownloadURL?lower_case != 'localhost')> 
13		<#assign docsDownloadURL = 'https://' + docsDownloadURL > 
14	<#else> 
15		<#assign docsDownloadURL = ''> 
16	</#if> 
17</#if> 
18<#assign currentGroupExpandoBridge = themeDisplay.getScopeGroup().getExpandoBridge()> 
19<#assign isDarkTheme = false> 
20<#if currentGroupExpandoBridge.hasAttribute("dark-theme")> 
21    <#assign isDarkTheme = currentGroupExpandoBridge.getAttribute("dark-theme", false)> 
22</#if> 
23 
24<#if isDarkTheme && !(hasDetailPage?? && getterUtil.getBoolean(hasDetailPage.getData())) > 
25<#assign scalingDetails = { 
26		 "desktop": {"alternateImage": {}, "key": "w_317"}, 
27		 "tl": {"alternateImage": SeparatorOverview.OverviewImage.ImageTl!, "key": "w_317"}, 
28		 "tp": {"alternateImage": SeparatorOverview.OverviewImage.ImageTp!, "key": "w_317"}, 
29		 "mobile": {"alternateImage": SeparatorOverview.OverviewImage.ImageM!, "key": "w_317"} 
30	}> 
31 
32 
33<#assign dataImg = leonardo.adaptImage(SeparatorOverview.OverviewImage!, scalingDetails )> 
34    <div class="product-page-hero-card product-card-modal-container product-base section-hero-card--smallerVersion section-hero-card--wider-page-padding"> 
35        <div class="product-card-modal"> 
36            <div class="product-card-modal-text"> 
37                <div class="modal-title-container"> 
38                    <h1 class="modal-title"> 
39                        ${SeparatorOverview.ProductName.getData()} 
40                    </h1> 
41                </div> 
42                <div class="product-card--graphic-container"> 
43                    <img class="product-card--graphic" alt="${SeparatorOverview.ProductName.getData()!}" title="${SeparatorOverview.ProductName.getData()!}" src="${themeDisplay.pathThemeImages}/blank.png" 
44                        data-src-url-d="${dataImg.desktop!}" 
45                        data-src-url-tl="${dataImg.tablet_landscape!}" 
46                        data-src-url-tp="${dataImg.tablet_portrait!}" 
47                        data-src-url-m="${dataImg.mobile!}"/> 
48                </div> 
49                <div class="modal-description"> 
50                    ${SeparatorOverview.OverviewText.getData()} 
51                </div> 
52 
53               <#if SeparatorOverview.OverviewFileUrl??> 
54                    <#assign docsDownloadURL = ''> 
55 
56                    <ul class="js-ul-overview"> 
57                        <#list SeparatorOverview.OverviewFileUrl.getSiblings() as itemList> 
58                            <#assign file_info = leonardo.findFileEntryInfo(itemList.getData()) > 
59                            <#if itemList.OverviewFileLabel.getData()!= '' && file_info.downloadUrl != ''> 
60                            <li class="list-item"> 
61                                <a href="${docsDownloadURL}${file_info.downloadUrl}" target="_blank"> 
62                                    ${itemList.OverviewFileLabel.getData()!} 
63                                </a> 
64                            </li> 
65                            </#if> 
66                        </#list> 
67                    </ul> 
68               </#if>