An error occurred while processing the template.
Java method "com.liferay.portlet.asset.model.impl.AssetEntryImpl.getAssetRenderer()" threw an exception when invoked on com.liferay.portlet.asset.model.impl.AssetEntryImpl object "{entryId=88855, groupId=78515, companyId=20116, userId=78702, userName=Sarah C. Rhoads, createDate=2018-10-09 15:04:16.01, modifiedDate=2022-02-25 15:38:37.497, classNameId=63605, classPK=88853, classUuid=db53fb50-462d-d0ff-aad0-351ff9c24530, classTypeId=78785, listable=true, visible=true, startDate=null, endDate=null, publishDate=2018-10-09 15:01:00.0, expirationDate=null, mimeType=text/html, title=<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US\" default-locale=\"en_US\"><Title language-id=\"en_US\">mp-552</Title></root>, description=, summary=, url=, layoutUuid=3b591eb7-8b7d-693a-96df-49c366a4f578, height=0, width=0, priority=0.0, viewCount=0}"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign renderer = curEntry.getAssetR...  [in template "20116#20152#78573" at line 26, column 33]
----
1<#-- 
2The source for this ADT is kept in the medical-policies-theme repo 
3in "/src/templates/adt/BCBS Policy Publisher.ftl" 
4 
5Please keep the source up-to-date with the code in Liferay.  
6--> 
7 
8<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
9<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
10<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
11 
12<div class="policy-content-container"> 
13<#-- If category ID is present, we are viewing the content and policy list for a category --> 
14	<#if renderRequest.getParameter("categoryId")??> 
15		<#assign categoryId = renderRequest.getParameter("categoryId") 
16	           category = assetCategoryLocalService.getAssetCategory(categoryId?number) 
17	           categoryName = category.getName() /> 
18	            
19		<#if entries?has_content> 
20		  	<#assign hasPolicies = false /> 
21		  	<#assign hasDocumentPolicies = false /> 
22		  	<#assign hasDocuments = false /> 
23			 
24			<#-- Loop through entries, output regular web content, check for policy content --> 
25			<#list entries as curEntry> 
26				<#assign renderer=curEntry.getAssetRenderer() /> 
27				<#if renderer.getType() == "journal_article"> 
28					<#assign article = renderer.getArticle() 
29							structureName=(article.getDDMStructure().getName("en_US"))!"Basic Web Content" /> 
30					<#if structureName == "Basic Web Content"> 
31						<#assign articleDisplay = journalArticleLocalService.getArticleDisplay(article.getGroupId(),article.getArticleId(), "","",themeDisplay) 
32			                     displayText = articleDisplay.getContent() /> 
33			            ${displayText} 
34			   		<#else> 
35						<#assign hasPolicies = true /> 
36					</#if>     
37		   		<#else> 
38					<#assign fileEntryId = renderer.getClassPK() /> 
39					<#assign fileEntry = dlFileEntryLocalService.getFileEntry(fileEntryId) /> 
40					<#assign documentTypeName = fileEntry.getDLFileEntryType().getName("en_US") /> 
41					<#if documentTypeName == "Medical Policy"> 
42						<#assign hasDocumentPolicies = true /> 
43			   		<#else> 
44						<#assign hasDocuments = true /> 
45					</#if>   
46				</#if>     
47			</#list> 
48			 
49			<#-- If there is policy content, output it in a table --> 
50			<#if hasPolicies> 
51			   	<table class="info-container clearfix policy-table" style="width:100%"> 
52			      <thead> 
53			      	<tr> 
54			      		<th>Policy #</th> 
55			      		<th>Policy Title</th> 
56			      		<th>Print View</th> 
57			      	</tr> 
58			      </thead> 
59			      <tbody> 
60			        <#list entries as curEntry> 
61			            <#assign renderer=curEntry.getAssetRenderer() /> 
62			            <#if renderer.getClassName() == "com.liferay.journal.model.JournalArticle"> 
63				            <#assign article = renderer.getArticle() 
64				                    docXml = saxReaderUtil.read(article.getContent())  
65				                    structureName = article.getDDMStructure().getName("en_US") 
66				                    entryTitle = htmlUtil.escape(renderer.getTitle(locale)?upper_case) 
67				                    policyTitle  = docXml.valueOf("//dynamic-element[@name='Header']/dynamic-content/text()") 
68				                    assetViewUrl = assetPublisherHelper.getAssetViewURL(renderRequest,renderResponse, curEntry) + "&categoryId=" + categoryId 
69				                    contentViewUrl = renderer.getURLViewInContext(renderRequest, renderResponse, assetViewUrl) /> 
70				                       
71				            <#if structureName != "Basic Web Content"> 
72				                <tr class="table-entry" data-entry-title="${entryTitle}" 
73                                                    data-policy-title="${policyTitle}"> 
74                                  <td class="table-index"><a href="${assetViewUrl}">${entryTitle}</a></td> 
75                                  <td class="table-entry"><a href="${assetViewUrl}">${policyTitle}</a></td> 
76                                  <td class="table-entry-action"><a href="${contentViewUrl}?print=1" target="_blank"><i class="fas fa-print"></i></a></td> 
77                                </tr> 
78				            </#if>     
79			            </#if> 
80			        </#list> 
81			      </tbody> 
82			    </table> 
83			</#if> 
84			 
85			<#-- If there are policy documents, output them in a table --> 
86			<#if hasDocumentPolicies> 
87			   	<table class="info-container clearfix policy-table documents" style="width:100%"> 
88			      <thead> 
89			      	<tr> 
90			      	    <th>Policy #</th> 
91			      		<th>Policy Title</th> 
92			      		<th>View</th> 
93			      	</tr> 
94			      </thead> 
95			      <tbody> 
96			        <#list entries as curEntry> 
97			            <#assign renderer=curEntry.getAssetRenderer() /> 
98			            <#if renderer.getClassName() == "com.liferay.document.library.kernel.model.DLFileEntry"> 
99							<#assign fileEntryId = renderer.getClassPK() /> 
100							<#assign fileEntry = dlFileEntryLocalService.getFileEntry(fileEntryId) /> 
101							<#assign documentTypeName = fileEntry.getDLFileEntryType().getName("en_US") /> 
102							<#if documentTypeName == "Medical Policy"> 
103								<#assign entryTitle = htmlUtil.escape(renderer.getTitle(locale)?replace(".pdf",""))> 
104								<#assign version = fileEntry.getLatestFileVersion(false) /> 
105								<#assign viewURL = (themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + httpUtil.encodeURL(htmlUtil.unescape(fileEntry.getTitle())) + "/" + fileEntry.getUuid() + "?version=" + version.getVersion())?replace("+","%20") /> 
106								<#assign ddmFormValuesMap = fileEntry.getDDMFormValuesMap(version.getFileVersionId()) /> 
107								<#assign policyNumber = "" /> 
108								 
109								<#list ddmFormValuesMap?keys as key>  
110								    <#assign ddmFormFieldValues = ddmFormValuesMap[key].getDDMFormFieldValues() /> 
111								    <#list ddmFormFieldValues as fieldValue>  
112								    	<#assign name = fieldValue.getName() /> 
113								    	<#if fieldValue.getName() == "PolicyNumber" > 
114									    	<#assign policyNumber = "BA-" + fieldValue.getValue().getString(locale) /> 
115									    </#if> 
116								    </#list> 
117								</#list>  
118								<tr class="table-entry" data-entry-title="${entryTitle}" 
119                                                            data-policy-number="${policyNumber}"> 
120								    <td class="table-entry-index"><a href="${viewURL}" target="_new">${policyNumber}</a></td> 
121								    <td class="table-entry-name"><a href="${viewURL}" target="_new">${entryTitle}</a></td> 
122								    <td class="table-entry-action"><a href="${viewURL}" target="_blank"><i class="fas fa-file-pdf"></i></a></td> 
123								</tr> 
124			            	</#if> 
125			            </#if> 
126			        </#list> 
127			      </tbody> 
128			    </table> 
129			</#if> 
130			 
131			<#-- If there are other documents, output them in a table --> 
132			<#if hasDocuments> 
133			   	<table class="info-container clearfix policy-table documents" style="width:100%"> 
134			      <thead> 
135			      	<tr> 
136			      		<th>Title</th> 
137			      		<th>View</th> 
138			      	</tr> 
139			      </thead> 
140			      <tbody> 
141			        <#list entries as curEntry> 
142			            <#assign renderer=curEntry.getAssetRenderer() /> 
143			            <#if renderer.getClassName() == "com.liferay.document.library.kernel.model.DLFileEntry"> 
144							<#assign fileEntryId = renderer.getClassPK() /> 
145							<#assign fileEntry = dlFileEntryLocalService.getFileEntry(fileEntryId) /> 
146							<#assign documentTypeName = fileEntry.getDLFileEntryType().getName("en_US") /> 
147							<#if documentTypeName != "Medical Policy"> 
148								<#assign entryTitle = htmlUtil.escape(renderer.getTitle(locale)?replace(".pdf",""))> 
149								<#assign version = fileEntry.getLatestFileVersion(false) /> 
150								<#assign viewURL = (themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + fileEntry.getGroupId() + "/" + fileEntry.getFolderId() + "/" + httpUtil.encodeURL(htmlUtil.unescape(fileEntry.getTitle())) + "/" + fileEntry.getUuid() + "?version=" + version.getVersion())?replace("+","%20") /> 
151								<#assign ddmFormValuesMap = fileEntry.getDDMFormValuesMap(version.getFileVersionId()) /> 
152								 <tr class="table-entry" data-entry-title="${entryTitle}"> 
153								    <td class="table-entry-name"><a href="${viewURL}" target="_new">${entryTitle}</a></td> 
154								    <td class="table-entry-action"><a href="${viewURL}" target="_blank"><i class="fas fa-file-pdf"></i></a></td> 
155								</tr> 
156				            </#if> 
157			            </#if> 
158			        </#list> 
159			      </tbody> 
160			    </table> 
161			</#if> 
162		<#else> 
163		    No Content Found for the chosen category <br/> 
164		</#if> 
165		 
166	<#else> 
167		<#-- We are viewing the default content for the page --> 
168	    <#attempt> 
169			<#-- Get the content to display based on the page name -->	    	 
170			<#assign contentName = themeDisplay.getLayout().getFriendlyURL(locale)?replace("/","") + "-content" /> 
171		    <#assign journalArticle =journalArticleLocalService.getArticleByUrlTitle(themeDisplay.getScopeGroupId(), contentName) 
172		            journalArticleDisplay = journalArticleLocalService.getArticleDisplay(themeDisplay.getScopeGroupId(),journalArticle.getArticleId(), "","",themeDisplay) 
173		            content = journalArticleDisplay.getContent() /> 
174	    	<div>${content}</div> 
175			 
176			<#-- Hide the Liferay pagination controls --> 
177	    	<style>.lfr-pagination {display: none;}</style> 
178		<#recover> 
179	        <h3> Content not found. </h3> 
180		</#attempt> 
181	</#if> 
182	 <script> 
183	            $(function () { 
184 
185 
186		            $('tr.table-entry').click(function (evt) { 
187		            	var analyticOBJ = {}; 
188			            var medAction = "click"; 
189			            var medName, medNumber ; 
190 
191			            if($(evt.currentTarget).closest('table').is('.policy-table.documents')){ 
192				            medNumber = $(evt.currentTarget).data('policyNumber') || ''; 
193				            medName = $(evt.currentTarget).data('entryTitle') || ''; 
194                        }else{ 
195				            medName = $(evt.currentTarget).data('policyTitle') || ''; 
196				            medNumber = $(evt.currentTarget).data('entryTitle') || ''; 
197
198 
199                        if($(evt.target).hasClass('fa-file-pdf')) medAction = "PDF"; 
200			            if ($(evt.target).hasClass('fa-print')) medAction = "PRINT"; 
201 
202 
203			            analyticOBJ["medname"] = medName; 
204			            analyticOBJ["mednumber"] = medNumber; 
205			            analyticOBJ["medaction"] = medAction; 
206 
207			            window.medPolicyClickAnalytics(analyticOBJ); 
208		            }); 
209 
210 
211 
212	            }); 
213 
214            </script> 
215</div>