An error occurred while processing the template.
The following has evaluated to null or missing:
==> recommStepJSON.getJSONObject("titleMap")  [in template "20096#20121#50534" at line 35, column 126]

----
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: recommStepTitleMap = recommStepJSON.g...  [in template "20096#20121#50534" at line 35, column 105]
----
1<#include "${templatesPath}/NAVIGATION-MACRO-FTL" /> 
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
3/> 
4<#assign currentUrl = themeDisplay.getURLCurrent() /> 
5 
6<#if !entries?has_content> 
7	<#if themeDisplay.isSignedIn()> 
8		<div class="alert alert-info"> 
9			<@liferay.language key="there-are-no-menu-items-to-display" /> 
10		</div> 
11	</#if> 
12<#else> 
13	<div aria-label="<@liferay.language key="site-pages" />" class="list-menu"> 
14		<ul> 
15		 
16	<#list entries as nav_item> 
17		<#assign  
18						 friendlyURL = nav_item.getURL()?split("/w/")[1] 
19						 isActive = currentUrl?ends_with("/" + friendlyURL) || (nav_item?index == 0 && currentUrl?ends_with("/recommendations")) 
20						 article = JournalArticleLocalService.getArticleByUrlTitle(themeDisplay.getSiteGroupId(), friendlyURL) 
21						 index = nav_item?index + 1/> 
22					  
23		 
24		<li><a href="${nav_item.getURL()}" class="lfr-nav-item ${isActive?string('active', '')}">${index}. ${nav_item.getTitle()} </a> 
25			 
26			<#if (article?? && isActive)> 
27		  <#assign docXML = saxReaderUtil.read(article.getDocument().asXML()) 
28						 recommendationStepNodes = docXML.selectNodes("/root/dynamic-element[@field-reference='recommendation_step']/dynamic-content[@language-id='${locale}']")/> 
29				<ul class="recommendation-step-list"> 
30				 
31				<#list recommendationStepNodes as node> 
32							 <#assign recommStepJSONString = node.getText()	 
33												recommStepJSON = jsonFactoryUtil.createJSONObject(recommStepJSONString) 
34		           recommStepTitle = jsonFactoryUtil.createJSONObject(recommStepJSONString).getString("title") 
35													recommStepTitleMap = recommStepJSON.getJSONObject("titleMap") 
36												recommStepLocalisedTitle = recommStepTitleMap.getString(locale) 
37												recommStepClassPK = recommStepJSON.getString("classPK") 
38						 /> 
39							 <li><a href="#recommendation_step_${recommStepClassPK}">${recommStepLocalisedTitle?has_content?then(recommStepLocalisedTitle, recommStepTitle)}</a></li> 
40						 </#list> 
41	      </ul>		 
42		</#if>	 
43		</li> 
44	</#list> 
45	</ul> 
46		 
47	</div> 
48	 
49	</#if> 
An error occurred while processing the template.
The following has evaluated to null or missing:
==> webContentData.classPK  [in template "20096#20121#48448" at line 29, column 82]

----
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: article = JournalArticleLocalService...  [in template "20096#20121#48448" at line 29, column 28]
----
1<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
2/> 
3 
4<div class="sdg-recommendation"> 
5<h2 class="recommendation-title"> 
6${.vars["reserved-article-title"].data} 
7</h2> 
8 
9<#if (recommendation_description.getData())??> 
10<div class="recommendation-description"> 
11	${recommendation_description.getData()} 
12</div> 
13</#if> 
14 
15<#if (recommendation_intro.getData())??> 
16<div class="recommendation-description"> 
17	${recommendation_intro.getData()} 
18</div> 
19</#if> 
20 
21<#if recommendation_step.getSiblings()?has_content> 
22 
23	<#list recommendation_step.getSiblings() as cur_recommendation_step> 
24	 
25		<#assign 
26			webContentData = jsonFactoryUtil.createJSONObject(cur_recommendation_step.getData()) 
27		/> 
28		<#if webContentData?has_content && webContentData != ""> 
29		  <#assign article = JournalArticleLocalService.getLatestArticle(webContentData.classPK?number) 
30			classPK = webContentData.classPK 
31		  /> 
32		  <div class="recommendation-step" id="recommendation_step_${classPK}"> 
33		  <@liferay_journal["journal-article"] 
34            articleId=article.getArticleId() 
35            ddmTemplateKey=article.getDDMTemplateKey() 
36            groupId=groupId/>  
37		 
38		  </div> 
39		</#if> 
40	 
41	</#list> 
42	 
43</#if> 
44 
45</div>