Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> curEntry.getAssetRenderer()  [in template "20097#20123#505623" at line 36, column 81]

----
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: assetRenderer = curEntry.getAssetRend...  [in template "20097#20123#505623" at line 36, column 65]
----
1<style> 
2.awards-filter { 
3	max-width: 530px; 
4	width: 100%; 
5
6</style> 
7 
8<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
9<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
10<section style="visibility: visible;"> 
11	<div class="container-fluid container-custom"> 
12		<div class="row"> 
13			<div class="col-md-12 mt-100"> 
14				<div id="filter-section" class="row mb-40"> 
15					<div class="col-md-3"> 
16						<h2 id="heading" class="m-md-0 mb-xs-20">All News</h2> 
17					</div> 
18					<div class="col-md-12 d-md-flex justify-content-center"> 
19						<div class="awards-filter pl-lg-4 mb-xs-20"> 
20							<label id="filter-text" class="head-dark">Media</label> 
21							<select id="select-category" onchange="filterCategoryContent()"> 
22								<option value="all" disabled selected>Select</option> 
23								<option value="news">News</option> 
24								<option value="events">Events</option> 
25								<option value="all">All</option> 
26							</select> 
27						</div>  
28					</div> 
29				</div> 
30			</div> 
31			<#if entries?has_content> 
32				<div class="col-12 mt-40 p-md-0 awards-list" > 
33					<div class="row"> 
34						<#list entries as curEntry> 
35							<#assign  
36								assetRenderer = curEntry.getAssetRenderer() 
37								journalArticle = assetRenderer.getAssetObject() 
38								viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "attrFullContent")) 
39								document = saxReaderUtil.read(journalArticle.getContent()) 
40								rootElement = document.getRootElement() 
41								articleId = journalArticle.getId()/> 
42							 
43								<#list rootElement.elements() as dynamicElement> 
44									<#if "title" == dynamicElement.attributeValue("name")> 
45										<#assign title = dynamicElement.element("dynamic-content").getData() /> 
46									</#if> 
47									<#if "card_image" == dynamicElement.attributeValue("name")> 
48										<#assign card_images = dynamicElement.element("dynamic-content").getData()/> 
49										<#assign card_image = jsonFactoryUtil.createJSONObject(card_images)/> 
50									</#if> 
51									<#if (card_image)??> 
52										<#assign cardImageUrl = themeDisplay.getPortalURL() + "/documents/"  + card_image.getString("groupId") + "/o/" + card_image.getString("title") + "/" + card_image.getString("uuid") /> 
53									</#if> 
54									<#if "cover_image" == dynamicElement.attributeValue("name")> 
55										<#assign cover_images = dynamicElement.element("dynamic-content").getData() /> 
56										<#assign cover_image = jsonFactoryUtil.createJSONObject(cover_images)/> 
57									</#if> 
58									<#if (cover_image)??> 
59										<#assign coverImageUrl = themeDisplay.getPortalURL() + "/documents/"  + cover_image.getString("groupId") + "/o/" + cover_image.getString("title") + "/" + cover_image.getString("uuid") /> 
60									</#if>					 
61									<#if "sub_title" == dynamicElement.attributeValue("name")> 
62										<#assign sub_title = dynamicElement.element("dynamic-content").getData() /> 
63									</#if> 
64									<#if "media_category" == dynamicElement.attributeValue("name")> 
65										<#assign media_category = dynamicElement.element("dynamic-content").getData() /> 
66									</#if> 
67									<#if "publication" == dynamicElement.attributeValue("name")> 
68										<#assign publication = dynamicElement.element("dynamic-content").getData() /> 
69									</#if> 
70									<#if "author" == dynamicElement.attributeValue("name")> 
71										<#assign author = dynamicElement.element("dynamic-content").getData() /> 
72									</#if> 
73									<#if "selection" == dynamicElement.attributeValue("name")> 
74										<#assign selection = dynamicElement.element("dynamic-content").getData() /> 
75									</#if> 
76									<#if "date" == dynamicElement.attributeValue("name")> 
77										<#assign date = dynamicElement.element("dynamic-content").getData() /> 
78									</#if> 
79									<#if "link" == dynamicElement.attributeValue("name")> 
80										<#assign link = dynamicElement.element("dynamic-content").getData() /> 
81									</#if> 
82									<#if "youtube_iframe" == dynamicElement.attributeValue("name")> 
83										<#assign youtube_iframe = dynamicElement.element("dynamic-content").getData() /> 
84									</#if> 
85									<#if "description" == dynamicElement.attributeValue("name")> 
86										<#assign description = dynamicElement.element("dynamic-content").getData() /> 
87									</#if> 
88								</#list>   
89								<#if selection?? > 
90									<div class="${selection?lower_case}-card col-md-4 award-unit"> 
91										<#if card_images?has_content && card_images!=""> 
92											<a href="./media/${selection?lower_case}?article=${articleId}"> 
93												<div class="card-image"> 
94													<#if media_category?has_content > 
95														<div class="media-category mt-20 tag-wrap"> 
96															<a class="tag">${media_category?upper_case}</a> 
97														</div> 
98													</#if> 
99													<img loading="lazy" src="${cardImageUrl}" class="img-responsive curve-all-sm"> 
100												</div> 
101											</a>		 
102										</#if> 
103										<#if title?has_content > 
104											<div class="title"> 
105												<a href="./media/${selection?lower_case}?article=${articleId}"> 
106													<div class="title"><p>${title}</p></div> 
107												</a> 
108											</div>	 
109										</#if> 
110									</div> 
111								</#if> 
112						</#list> 
113					</div> 
114				</div>  
115			</#if> 
116		</div>   
117	</div> 
118</section> 
119<script> 
120$( document ).ready(function() { 
121    var selection = sessionStorage.getItem("selection"); 
122    var filter = sessionStorage.getItem("filterChange"); 
123    sessionStorage.removeItem("filterChange"); 
124    sessionStorage.removeItem("selection"); 
125    if(filter == "true" && selection != null){ 
126        $("#select-category option[value=selection]").prop('selected', true); 
127        filterCategoryContent(); 
128
129}); 
130	function filterCategoryContent() { 
131		var choice = $("#select-category").val(); 
132		sessionStorage.setItem("selection",choice); 
133		switch(choice) { 
134			case "news": 
135			$(".press-card").hide(); 
136			$(".media-card").hide(); 
137			$(".events-card").hide(); 
138			$(".news-card").show(); 
139			break; 
140			case "events": 
141			$(".news-card").hide(); 
142			$(".press-card").hide(); 
143			$(".media-card").hide(); 
144			$(".events-card").show(); 
145			break; 
146			case "press": 
147			$(".news-card").hide(); 
148			$(".events-card").hide(); 
149			$(".mediaRelease-card").hide(); 
150			$(".press-card").show(); 
151			break; 
152			case "media": 
153			$(".news-card").hide(); 
154			$(".events-card").hide(); 
155			$(".press-card").hide(); 
156			$(".media-card").show(); 
157			break; 
158			case "all": 
159			$(".news-card").show(); 
160			$(".events-card").show(); 
161			$(".press-card").show(); 
162			$(".media-card").show(); 
163			break; 
164			default: 
165			$(".news-card").show(); 
166			$(".events-card").show(); 
167			$(".press-card").show(); 
168			$(".media-card").show(); 
169
170
171</script>