Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> assetEntry.getCategories()[0]  [in template "76908261436272#20123#526167" at line 22, column 46]

----
Tip: It's the final [] step 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: #assign categoria = assetEntry.getCat...  [in template "76908261436272#20123#526167" at line 22, column 25]
----
1<#assign _assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
2<#assign _assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
3 
4<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet"> 
5<div class="mpsc-conteudo-results"> 
6	<p class="texto-search-result">Foram encontrados <span>${searchContainer.getTotal()}</span> resultado(s).</p> 
7	<#if entries?has_content> 
8		<#list entries as entry> 
9			<#assign assetEntry = _assetEntryLocalService.fetchEntry(entry.getClassName(), entry.getClassPK()) /> 
10			<#assign content = assetEntry.getAssetRenderer().getArticle().getContent() /> 
11			<#assign docXML = saxReaderUtil.read(content?string) /> 
12			<#assign imgConteudo = docXML.selectSingleNode("/root/dynamic-element[@field-reference='thumbnail']/dynamic-content").getStringValue() /> 
13			<#assign jsonConteudo = imgConteudo?eval /> 
14			<#assign urlConteudo = "/web/guest/w/" + assetEntry.getAssetRenderer().getUrlTitle() /> 
15			<#assign urlFacebook = "https://www.facebook.com/sharer/sharer.php?u=" + themeDisplay.getURLPortal()  
16							 + "/web/guest/w/" + assetEntry.getAssetRenderer().getUrlTitle() /> 
17			<#assign urlTwitter = "https://twitter.com/intent/tweet?url=" + themeDisplay.getURLPortal()  
18							 + "/web/guest/w/" + assetEntry.getAssetRenderer().getUrlTitle() /> 
19			<#assign titulo = entry.getTitle() /> 
20			<#assign descricao = assetEntry.getDescription(locale)/> 
21			<#assign nodeAudio = docXML.selectSingleNode("/root/dynamic-element[@field-reference='audioConteudo']/dynamic-content") /> 
22			<#assign categoria = assetEntry.getCategories()[0] /> 
23			<#assign urlAudio = "" /> 
24 
25			<#if nodeAudio?? && nodeAudio.getStringValue()?has_content> 
26				<#attempt> 
27					<#assign audioConteudo = nodeAudio.getStringValue()?eval /> 
28					<#assign urlAudio = "/documents/" + audioConteudo.groupId + "/" + audioConteudo.uuid /> 
29				<#recover> 
30					<#assign urlAudio = "" /> 
31				</#attempt> 
32			</#if> 
33 
34			<#assign dataConteudo = assetEntry.getAssetRenderer().getArticle().getCreateDate()/> 
35			 
36			<div class="card-conteudo mb-2 pb-2"> 
37				<div class="img-conteudo"> 
38					<#if jsonConteudo.url?has_content> 
39						<a href="${urlConteudo}"><img src="${jsonConteudo.url}"/></a> 
40					<#else> 
41						<a href="${urlConteudo}"><img src="/documents/d/guest/sonora-1"/></a> 
42					</#if> 
43				</div> 
44				<div class="texto-conteudo"> 
45					<h3><a href="${urlConteudo}">${titulo}</a></h3> 
46					<p class="texto-conteudo">${descricao}</p> 
47					<div class="linha-conteudo"> 
48						<p class="data-conteudo">${dataConteudo?string("dd/MM/yyyy")} - Categoria: ${categoria.name}</p> 
49						 
50					</div> 
51					<div class="linha-conteudo"> 
52						<#if urlAudio?has_content> 
53							<audio class="mr-2" src="${urlAudio}" controls></audio> 
54						</#if> 
55						<a href="${urlFacebook}" target="_blank" class="btn-social"> 
56							<i class="fa-brands fa-facebook facebook"></i> Facebook</a> 
57						<a href="${urlTwitter}" target="_blank" class="btn-social"> 
58							<i class="fa-brands fa-twitter twitter"></i> Twitter</a> 
59					</div> 
60				</div> 
61			</div> 
62		</#list> 
63	<#else> 
64		<h2>Não há conteúdos com esse filtro selecionado.</h2> 
65	</#if> 
66</div> 
67	 
68<style> 
69	.mpsc-conteudo-results{ 
70		display: flex; 
71		flex-direction: column; 
72
73	 
74 	.card-conteudo { 
75		display: flex; 
76		align-items: flex-start; 
77		gap: 20px; 
78		border-bottom: 1px solid #ddd; 
79		padding: 15px 0; 
80		font-family: "Open Sans", sans-serif; 
81
82 
83    .img-conteudo img { 
84		width: 160px; 
85		height: auto; 
86		object-fit: contain; 
87		border-radius: 6px; 
88
89 
90    .texto-conteudo h3 a { 
91		font-size: 20px; 
92		margin: 0 0 10px; 
93		color: #333; 
94
95	 
96	.data-conteudo{ 
97		font-size: 13px; 
98		margin-right: 15px; 
99		color: #999; 
100
101	 
102	.texto-conteudo h3 a:hover{ 
103		text-decoration:none; 
104
105 
106    .texto-conteudo p{ 
107		color: #999; 
108		font-size: 14px; 
109		margin: 0 0 10px; 
110
111	 
112	.texto-conteudo div{ 
113		color: #999; 
114		font-size: 14px; 
115
116	 
117	.texto-search-result { 
118		color: #999; 
119		font-size: 15px; 
120		margin: 0 0 10px; 
121
122	 
123	.texto-search-result span { 
124		font-weight: 700; 
125
126	 
127	.texto-conteudo div li a{ 
128		color: #999; 
129		font-size: 14px; 
130
131 
132    .linha-conteudo { 
133        margin-top: 10px; 
134        display: flex; 
135        align-items: center; 
136
137 
138    .btn-social { 
139		display: inline-block; 
140		margin-right: 8px; 
141		padding: 4px 8px; 
142		background-color: #efefef; 
143		border: 1px solid #ddd; 
144		font-family: "Open Sans", sans-serif; 
145		font-size: 12px; 
146		color: #333; 
147		border-radius: 3px; 
148		text-decoration: none; 
149
150   
151	.btn-social:hover{ 
152		text-decoration: none; 
153		color: #333; 
154
155 
156    .facebook { 
157       color: #3b5998; 
158
159 
160    .twitter { 
161       color: #1da1f2; 
162
163		 
164	li{ 
165		color: #999; 
166
167	 
168	li::marker{ 
169	  color:#5fa01f; 
170
171	 
172	@media (max-width: 900px) { 
173		.card-conteudo{ 
174			flex-direction: column; 
175
176
177			 
178	@media (min-width: 1024px) { 
179		.mpsc-conteudo-results{ 
180			padding-right: 10px; 
181
182
183</style>