Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> testo  [in template "114284#114319#588836" at line 119, column 62]

----
Tip: If the failing expression is known to be 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: ${testo}  [in template "114284#114319#588836" at line 119, column 60]
----
1<#assign 
2    DLAppLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"] 
3    mkspAPI = serviceLocator.findService("eu.suggesto.suggestogui.service.SuggestoGuiLocalService") 
4    catsService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
5    serverName = request.getServerName() 
6    defLng = themeDisplay.getSiteDefaultLocale() 
7     
8    id_vocabolario_appuntamenti = 572715 
9/> 
10 
11<div class="gradient_bg"> 
12    <div class="page_content container-fluid text-center pt-5 pb-5"> 
13    	<h1 class="pb-3">I nostri appuntamenti</h1> 
14    	<#-- <img style="max-width:90px;" src="${themeDisplay.getPathThemeImages()}/hashtag.png"/> --> 
15    	<img style="max-width:200px;" src="${themeDisplay.getPathThemeImages()}/appuntamenti.png"/> 
16    </div> 
17 
18    <div class="row_appuntamenti container pb-5"> 
19         
20        <div class="row_bottoni pt-sm-5 pt-3"> 
21        	<div class="row"> 
22                <#list catsService.getVocabularyCategories(id_vocabolario_appuntamenti, -1, -1, null) as cat> 
23                    <#assign catUrl = renderResponse.createRenderURL()> 
24                     
25        	        ${catUrl.setParameter("categoryId", cat.categoryId?string)} 
26        	        <div class="col-xl-3 col-lg-6 my-2"> 
27                        <a href="${catUrl}" class="btn"> 
28                            ${cat.getName()} 
29                        </a> 
30                    </div> 
31                </#list> 
32            </div> 
33        </div> 
34     
35        <div class="date_content"> 
36        <#if entries?has_content> 
37            <div class="list_eventi text_content p-md-5 p-3 mt-5 text-md-left text-center"> 
38            <#list entries as entry> 
39                <#assign 
40                    entry = entry 
41                    assetRenderer = entry.getAssetRenderer() 
42                    className = assetRenderer.getClassName() 
43                    entryTitle = htmlUtil.escape(assetRenderer.getTitle(themeDisplay.getLocale())) 
44                /> 
45                
46                <#if className == "com.liferay.journal.model.JournalArticle"> 
47                    <#assign 
48                        journalArticle = assetRenderer.getArticle() 
49                        document = saxReaderUtil.read(journalArticle.getContent()) 
50                        rootElement = document.getRootElement() 
51                    /> 
52                     
53                     
54                    <#-- FORMATTAZIONE DATA ("dataContenuto" è la data finale da usare) --> 
55                     
56                    <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Datadlnx']")>  
57                    <#if xPathSelector.selectSingleNode(rootElement)??> 
58                        <#assign stringData = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim> 
59                        <#setting locale = themeDisplay.getLocale()> 
60                         
61                        <#if validator.isNotNull(stringData)> 
62                            <#assign dataObj = dateUtil.parseDate("yyyy-MM-dd", stringData, locale)> 
63                            <#assign dataContenuto = dateUtil.getDate(dataObj, "dd MMMM yyyy", locale)> 
64                            <#assign giorno = dateUtil.getDate(dataObj, "dd", locale)> 
65                            <#assign mese = dateUtil.getDate(dataObj, "MMMM", locale)> 
66                            <#assign anno = dateUtil.getDate(dataObj, "yyyy", locale)> 
67                        <#else> 
68                            <#assign dataContenuto = ""> 
69                        </#if> 
70                    </#if> 
71                    
72                    <#assign stringSelector = "dynamic-element[@name='ImmagineAbstract']"> 
73                    <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)> 
74                    <#if xPathSelector.selectSingleNode(rootElement)??> 
75                        <#assign 
76                            immagine = xPathSelector.selectSingleNode(rootElement).getStringValue() 
77                            fileEntryId = assetRenderer.getClassPK() 
78                        /> 
79                        <#if immagine?trim?has_content> 
80                            <#assign 
81                                jsonField = jsonFactoryUtil.createJSONObject(immagine) 
82                                fileEntry = DLAppLocalServiceUtil.getFileEntryByUuidAndGroupId(jsonField.uuid, groupId) 
83                                immagine = "/documents/" + jsonField.groupId + "/" + fileEntry.folderId + "/" + jsonField.title + "/" + jsonField.uuid 
84                            /> 
85                        <#else> 
86                            <#assign immagine = "https://via.placeholder.com/450x300?text=Placeholder"> 
87                        </#if> 
88                    </#if> 
89                    
90                    <#assign stringSelector = "dynamic-element[@name='DescrizioneBreve']/dynamic-content[@language-id = '" + themeDisplay.getLocale() + "']"> 
91                    <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)> 
92                    <#if xPathSelector.selectSingleNode(rootElement)??> 
93                        <#assign testo = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
94                    </#if> 
95                     
96                    <#assign stringSelector = "dynamic-element[@name='data_e_luogo']/dynamic-content[@language-id = '" + themeDisplay.getLocale() + "']"> 
97                    <#assign xPathSelector = saxReaderUtil.createXPath(stringSelector)> 
98                    <#if xPathSelector.selectSingleNode(rootElement)??> 
99                        <#assign data_e_luogo = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
100                    </#if> 
101                    
102                    <#assign viewUrl = mkspAPI.getArticleUrl(groupId, serverName, journalArticle.articleId, localeUtil.fromLanguageId(themeDisplay.getLocale()), defLng, "/dettaglio-appuntamenti")> 
103                     
104                     
105                    <div> 
106                        <a href="${viewUrl}" class="row row_eventi pb-5 <#if entry?index == 0>pt-0<#else>pt-5</#if>"> 
107            				<div class="row align-items-center pt-0"> 
108            					<div class="col-md-4"> 
109            						<img src="${immagine}" /> 
110            					</div> 
111             
112            					<div class="col-md-8 pl-5 mt-md-0 mt-5"> 
113                                    <#if data_e_luogo??> 
114                                        <h3>${data_e_luogo}</h3> 
115                                    <#else> 
116                                        <h3>${dataContenuto}</h3> 
117                                    </#if> 
118            						<h2>${entryTitle}</h2> 
119            						<p>${testo}</p> 
120            						 
121            						<#assign 
122                                        list_categories = entry.getCategories() 
123                                    /> 
124                                     
125                                    <#list list_categories as single_cat> 
126               
127                                        <#assign full_obj = jsonFactoryUtil.looseSerialize(single_cat) > 
128                            	         
129                            	        <#assign 
130                                            catColor = jsonFactoryUtil.createJSONObject(full_obj).getString("descriptionCurrentValue") 
131                                            catName = single_cat.getName() 
132                                        /> 
133                                    </#list> 
134                                     
135                                    <p class="sing_cat">Trovi questo appuntamento in:<strong class="pl-1" style="color:${catColor}">${catName}</strong></p> 
136            						 
137            					</div> 
138            				</div> 
139        				</a> 
140        			</div> 
141                </#if> 
142            </#list> 
143            </div> 
144        </#if> 
145        </div> 
146    </div> 
147</div>