Blog | Enterprise Solutions at Hays
BLOG

An error occurred while processing the template.
The following has evaluated to null or missing:
==> TitlexPathSelector.selectSingleNode(rootElement) [in template "20115#20151#1673309" at line 29, column 6]
----
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: #if TitlexPathSelector.selectSingleNo... [in template "20115#20151#1673309" at line 29, column 1]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
2<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
3
4<div class="row">
5<div class="hays-col hays-col-12">
6<div class="row">
7<#if entries?has_content>
8<#assign xcountArticles = entries?size/>
9<#assign lastrow = (xcountArticles/3)?floor/>
10<#assign restcountArticles = (xcountArticles-lastrow)/>
11<#assign secondrow = (restcountArticles/2)?floor/>
12<#assign firstrow = (restcountArticles-secondrow)/>
13<#assign breaker = firstrow/>
14<#assign counter = 1/>
15<div class="hays-col hays-col-4">
16<#list entries as curEntry>
17<#setting locale="en_US">
18<#assign renderer = curEntry.getAssetRenderer()/>
19<#assign className = renderer.getClassName()/>
20<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry, true)/>
21
22 <#assign journalArticle = renderer.getArticle()>
23<#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale))>
24<#assign rootElement = document.getRootElement()>
25<#assign Title = curEntry.getTitle(locale) />
26<#assign summary = curEntry.getSummary(locale) />
27<#assign TitlexPathSelector = saxReaderUtil.createXPath( "dynamic-element[@name='ImageBlg']/dynamic-content")>
28<#assign docUrl = "" />
29<#if TitlexPathSelector.selectSingleNode(rootElement).getStringValue()?has_content>
30<#assign Image = TitlexPathSelector.selectSingleNode(rootElement).getStringValue()?eval>
31<#if Image??>
32<#assign entryUuid = Image.uuid />
33<#assign entryGroupId = getterUtil.getLong(Image.groupId) />
34<#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) />
35<#if dlFileEntry??>
36<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) />
37<#if assetEntry??>
38<#assign assetRenderer = assetEntry.assetRenderer />
39<#if assetRenderer??>
40<#assign docUrl = assetRenderer.getURLDownload(themeDisplay) />
41</#if>
42</#if>
43</#if>
44</#if>
45</#if>
46
47<#assign TitlexPathSelector1 = saxReaderUtil.createXPath( "dynamic-element[@name='ButtonText']")>
48<#assign Text = TitlexPathSelector1.selectSingleNode(rootElement).getStringValue()>
49
50 <div class="box">
51<div class="content-img"><div>
52 <#if docUrl?has_content>
53<img src="${docUrl}" alt="${Title}">
54</#if>
55</div>
56
57<h2>${Title}</h2></b>
58<p>${summary}</p>
59<div class="btn"><a href="${viewURL}" target="">${Text}</a></div>
60</div>
61</div>
62<#if breaker <= (firstrow+secondrow) && (counter/breaker) == 1>
63</div>
64<div class="hays-col hays-col-4">
65<#assign breaker = breaker + secondrow/>
66</#if>
67<#assign counter = counter +1/>
68</#list>
69</div>
70</#if>
71</div>
72</div>
73</div>