Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy160.getDLFileEntry(long)" threw an exception when invoked on com.sun.proxy.$Proxy160 object "com.liferay.portlet.documentlibrary.service.impl.DLFileEntryLocalServiceImpl@563c1191"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign dlElement = dlFileEntryLocalS...  [in template "20099#20135#113301" at line 150, column 49]
----
1<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
3<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
4<#assign htmlUtil = serviceLocator.findService("com.liferay.portal.kernel.util.HtmlUtil") /> 
5 
6<#if request.getParameter("p_r_p_categoryId")?? > 
7    <#assign selectedCategoryId = request.getParameter("p_r_p_categoryId") /> 
8    <#assign assetCategory = assetCategoryLocalService.getCategory(selectedCategoryId?number) /> 
9 
10		${portalUtil.setPageTitle(assetCategory.getTitle(locale) + " - PSN", request)} 
11		${portalUtil.setPageDescription(assetCategory.getDescription(locale), request)} 
12</#if> 
13 
14<#assign ofTitle = languageUtil.get(locale, "global.of") /> 
15<#assign byTitle = languageUtil.get(locale, "global.by") /> 
16<#assign readMoreTitle = languageUtil.get(locale, "global.read.more") /> 
17 
18<#if entries?has_content> 
19 
20	 
21	<#assign curEntry = entries[0] /> 
22	<#assign assetRenderer = curEntry.getAssetRenderer() /> 
23	<#assign className = assetRenderer.getClassName() /> 
24 
25	<#if className == "com.liferay.journal.model.JournalArticle"> 
26		<#assign journalArticle = assetRenderer.getArticle() /> 
27		<#assign assetEntry = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', journalArticle.resourcePrimKey) > 
28 
29		<#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())) /> 
30		<#assign rootElement = document.getRootElement() /> 
31 
32		<#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse,"") /> 
33		 
34		<#assign textoArticulo = document.selectSingleNode("//dynamic-element[@name='textoArticuloParteUno']/dynamic-content") /> 
35		<#assign autorArticulo = document.selectSingleNode("//dynamic-element[@name='nombreAutor']/dynamic-content") /> 
36 
37		<#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@name='imagenArticulo']/dynamic-content") /> 
38		<#assign imagenArticulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 
39								 
40		<#if (imagenArticulo?has_content)> 
41			<#assign imagenArticuloMap = imagenArticulo?eval /> 
42			<#assign imagenArticuloFileEntryId = imagenArticuloMap["fileEntryId"]?number /> 
43		</#if> 
44 
45		<#assign urlImage = "" /> 
46		<#if (imagenArticulo?has_content) && (imagenArticuloFileEntryId != 0)> 
47			<#assign dlElement = dlFileEntryLocalService.getDLFileEntry(imagenArticuloFileEntryId) />	 
48			<#assign urlImage = portalUtil.getPortalURL(renderRequest) + '/documents/' + dlElement.getRepositoryId() + '/' + dlElement.getFolderId() + '/' + htmlUtil.escapeURL(dlElement.getTitle()) +'/' + dlElement.getUuid() + '?' + dlElement.getVersion() />									 
49		</#if> 
50		 
51		<#if urlImage??> 
52		<section class="hero" style="background-image: url(${urlImage});"> 
53		<#else> 
54		<section class="hero"> 
55		</#if> 
56			<div class="hero-overlay"></div> 
57			<div class="hero-content-wrapper"> 
58				<div class="container h-100"> 
59					<div class="row h-100"> 
60						<div class="col-12 col-lg-8"> 
61							<div class="hero-content"> 
62								<div class="border-bar"></div> 
63								<article class="hero-content-article bordered"> 
64									<div class="hero-content-categories"> 
65										<#assign categories = curEntry.getCategories() > 
66										<#assign categoriesSize = categories?size /> 
67 
68										<#if (categoriesSize == 1)> 
69											<a href="${getUrlCategory(categories?first)}" class="hero-content-category" rel="nofollow">${categories?first.getName()}</a> 
70										</#if> 
71 
72										<#if (categoriesSize == 2)> 
73											<a href="${getUrlCategory(categories?first)}" class="hero-content-category" rel="nofollow">${categories?first.getName()},</a> 
74											<a href="${getUrlCategory(categories?last)}" class="hero-content-category" rel="nofollow">${categories?last.getName()}</a> 
75										</#if> 
76 
77										<#if (categoriesSize > 2)>											 
78											<#assign sublistVar = curEntry.getCategories()[0..categoriesSize-2] /> 
79											<#list sublistVar as categoryElement> 
80												<a href="${getUrlCategory(categoryElement)}" class="hero-content-category" rel="nofollow">${categoryElement.getName()},</a> 
81											</#list> 
82 
83											<a href="${getUrlCategory(categories?last)}" class="hero-content-category" rel="nofollow">${categories?last.getName()}</a> 
84										</#if> 
85									</div> 
86									<div class="hero-content-body"> 
87										<a href="${viewURL}" class="hero-content-title"> 
88											<h1 class="h1-blog">${curEntry.getTitle(locale)}</h1> 
89										</a> 
90									</div> 
91									<div class="hero-content-footer"> 
92										<div class="hero-content-date"> 
93											<img src="${themeDisplay.getPathThemeImages()}/calendar.svg" alt="icon"> 
94											<#assign displayDate = assetRenderer.getDisplayDate() /> 
95						  				<p>${displayDate?string["dd"]} ${ofTitle} ${dateUtil.getDate(displayDate, 'MMMM', locale)} ${ofTitle} ${displayDate?string["yyyy"]}<#if autorArticulo.getStringValue() != "" >, ${byTitle} ${autorArticulo.getStringValue()}</#if></p> 
96										</div> 
97									</div> 
98									<div class="hero-content-resume"> 
99										<@textoArticuloResumen textoArticuloSubstring="${textoArticulo.getStringValue()}"/> 
100									</div> 
101								</article> 
102							</div> 
103							<div class="hero-button-wrapper">							 
104								<a href="${viewURL}" rel="nofollow"><button class="btn btn-psn primary-btn variation-btn">${readMoreTitle}</button></a> 
105							</div> 
106						</div> 
107					</div> 
108				</div> 
109			</div> 
110		</section> 
111		 
112	</#if> 
113 
114	<#if (entries?size > 1) > 
115	 
116		<section class="last-posts"> 
117			<div class="container"> 
118							 
119				<#list entries[1..] as curEntry> 
120				 
121				<#assign assetRenderer = curEntry.getAssetRenderer() /> 
122				<#assign className = assetRenderer.getClassName() /> 
123 
124				<#if className == "com.liferay.journal.model.JournalArticle"> 
125					<#assign journalArticle = assetRenderer.getArticle() /> 
126					<#assign assetEntry = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', journalArticle.resourcePrimKey) > 
127 
128					<#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())) /> 
129					<#assign rootElement = document.getRootElement() /> 
130 
131					<#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse,"") /> 
132					 
133					<#assign textoArticulo = document.selectSingleNode("//dynamic-element[@name='textoArticuloParteUno']/dynamic-content") /> 
134					<#assign autorArticulo = document.selectSingleNode("//dynamic-element[@name='nombreAutor']/dynamic-content") /> 
135					<#assign videoArticulo = document.selectSingleNode("//dynamic-element[@name='videoPrincipal']/dynamic-content").getStringValue() /> 
136 
137 
138					<#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@name='imagenArticulo']/dynamic-content") /> 
139					<#assign imagenArticulo = xPathSelector.selectSingleNode(rootElement).getStringValue() /> 
140					 
141 
142									 
143					<#if (imagenArticulo?has_content)> 
144						<#assign imagenArticuloMap = imagenArticulo?eval /> 
145						<#assign imagenArticuloFileEntryId = imagenArticuloMap["fileEntryId"]?number /> 
146					</#if> 
147 
148					<#assign urlImage = "" /> 
149					<#if (imagenArticulo?has_content) && (imagenArticuloFileEntryId != 0)> 
150						<#assign dlElement = dlFileEntryLocalService.getDLFileEntry(imagenArticuloFileEntryId) />	 
151						<#assign urlImage = portalUtil.getPortalURL(renderRequest) + '/documents/' + dlElement.getRepositoryId() + '/' + dlElement.getFolderId() + '/' + htmlUtil.escapeURL(dlElement.getTitle()) +'/' + dlElement.getUuid() + '?' + dlElement.getVersion() />									 
152					</#if> 
153					 
154					<article class="post-resume"> 
155					<div class="row">		 
156						<div class="col-12 col-lg-6 d-flex"> 
157						<div class="post-image margined-top ${(videoArticulo?? && videoArticulo != "")?string('embed-video-post','')}"> 
158							<#if urlImage?has_content> 
159								<img src="${urlImage}" alt="${imagenArticuloMap["alt"]}"> 
160							</#if> 
161							<#if videoArticulo?? && videoArticulo != ""> 
162								<button class="play-video-button play-thumbnail-video video-action" role="button" data-src="${videoArticulo}?enablejsapi=1" data-title="${curEntry.getTitle(locale)}"> 
163									<svg version="1.1" id="play" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve"> 
164										<path class="play-icon" fill="#fff" d="M38,69c-1,0.5-1.8,0-1.8-1.1V32.1c0-1.1,0.8-1.6,1.8-1.1l34,18c1,0.5,1,1.4,0,1.9L38,69z"/> 
165										<path class="stroke-solid" fill="none" stroke="#fff" d="M49.9,2.5C23.6,2.8,2.1,24.4,2.5,50.4C2.9,76.5,24.7,98,50.3,97.5c26.4-0.6,47.4-21.8,47.2-47.7 
166										C97.3,23.7,75.7,2.3,49.9,2.5"/> 
167									</svg> 
168								</button>							 
169							</#if> 
170						</div> 
171						</div> 
172						<div class="col-12 col-lg-6 d-flex"> 
173						<div class="post-content margined-bottom margined-left"> 
174							<div class="post-content-header"> 
175							<div class="post-content-title title-dotted">						   
176								<#assign categories = curEntry.getCategories() > 
177								<#assign categoriesSize = categories?size /> 
178 
179								<#if (categoriesSize == 1)> 
180									<a href="${getUrlCategory(categories?first)}" class="pre-title category-name" rel="nofollow">${categories?first.getName()}</a> 
181								</#if> 
182 
183								<#if (categoriesSize == 2)> 
184									<a href="${getUrlCategory(categories?first)}" class="pre-title category-name" rel="nofollow">${categories?first.getName()},</a> 
185									<a href="${getUrlCategory(categories?last)}" class="pre-title category-name" rel="nofollow">${categories?last.getName()}</a> 
186								</#if> 
187 
188								<#if (categoriesSize > 2)> 
189									<#assign sublistVar = curEntry.getCategories()[0..categoriesSize-2] /> 
190									<#list sublistVar as categoryElement> 
191										<a href="${getUrlCategory(categoryElement)}" class="pre-title category-name" rel="nofollow">${categoryElement.getName()},</a> 
192									</#list> 
193 
194									<a href="${getUrlCategory(categories?last)}" class="pre-title category-name" rel="nofollow">${categories?last.getName()}</a> 
195								</#if>					 
196								 
197								<a href="${viewURL}"><h2 class="h2-blog">${curEntry.getTitle(locale)}</h2></a> 
198							</div> 
199							</div> 
200							<div class="post-content-body"> 
201								<@textoArticuloResumen textoArticuloSubstring="${textoArticulo.getStringValue()}"/> 
202							</div> 
203							<div class="post-content-footer"> 
204							<div class="post-date"> 
205								<img src="${themeDisplay.getPathThemeImages()}/calendar.svg" alt="icon">						   
206								<#assign displayDate = assetRenderer.getDisplayDate() /> 
207								<p>${displayDate?string["dd"]} ${ofTitle} ${dateUtil.getDate(displayDate, 'MMMM', locale)} ${ofTitle} ${displayDate?string["yyyy"]}</p> 
208							</div> 
209							<a href="${viewURL}" rel="nofollow"><button class="btn btn-psn gradient-btn">${readMoreTitle}</button></a> 
210							</div> 
211						</div> 
212						</div> 
213					</div> 
214					</article> 
215					 
216				</#if> 
217											 
218				</#list> 
219				 
220			</div>	 
221		</section> 
222 
223	</#if> 
224 
225	 
226	<div id="video-thumbnail-post" class="video-thumbnail-post"> 
227		<div class="container"> 
228			<div class="row"> 
229				<div class="col-4"> 
230					<div class="embed-responsive embed-responsive-16by9 embed-video-wrapper"> 
231						<iframe class="embed-responsive-item embed-video" src="" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 
232					</div> 
233				</div> 
234			</div> 
235			<div class="row"> 
236				<div class="col-12"> 
237					<article class="video-info"> 
238						<div class="video-title"> 
239							<h5 class="h5">Mi titulo</h5> 
240						</div> 
241						<div class="close-video"> 
242							<button class="stop-video-button stop-thumbnail-video video-action is-playing" role="button"> 
243								<svg version="1.1" id="stop" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve"> 
244									<g class="toggle"> 
245										<line class="stop-icon" x1="15" y1="15" x2="25" y2="25" stroke="#424745"></line> 
246										<line class="stop-icon" x1="25" y1="15" x2="15" y2="25" stroke="#424745"></line> 
247									</g> 
248								<path class="stroke-solid" d="M20 1c10.45 0 19 8.55 19 19s-8.55 19-19 19-19-8.55-19-19 8.55-19 19-19z" class="progress" stroke="#424745" fill="none"></path> 
249								</svg> 
250							</button> 
251						</div> 
252					</article> 
253				</div> 
254			</div> 
255		</div> 
256	</div>					 
257	 
258	<section class="d-flex justify-content-center pagination-psn"> 
259		<nav> 
260		  <ul class="pagination"> 
261			<li class="page-item"> 
262			  <a class="page-link page-previous" href="#" aria-label="Previous"> 
263				<span aria-hidden="true">&laquo;</span> 
264				<span class="sr-only">Previous</span> 
265			  </a> 
266			</li> 
267			<li class="page-item"> 
268			  <a class="page-link page-next" href="#" aria-label="Next"> 
269				<span aria-hidden="true">&raquo;</span> 
270				<span class="sr-only">Next</span> 
271			  </a> 
272			</li> 
273		  </ul> 
274		</nav> 
275	</section> 
276 
277</#if> 
278 
279 
280 
281 
282<#function getUrlCategory item> 
283	<#assign categoryURL = layout.getGroup().getExpandoBridge().getAttribute("URLcategorias") />	 
284	<#assign categoryURL += "?p_r_p_categoryId=" + item.getCategoryId()?string/>	 
285	<#return categoryURL> 
286</#function> 
287 
288 
289<#macro textoArticuloResumen textoArticuloSubstring > 
290	<#if (textoArticuloSubstring?length > 200)> 
291 
292		<#if (textoArticuloSubstring[199] != ' ')> 
293				<#assign textoArticuloNextSpace = textoArticuloSubstring?substring(199,220)> 
294				<#assign textoArticuloNextSpaceIndex = textoArticuloNextSpace?index_of(' ')> 
295				<#assign textoArticuloSubstringNextSpace = textoArticuloSubstring?substring(0,199+textoArticuloNextSpaceIndex)> 
296				${textoArticuloSubstringNextSpace} ...			 
297		<#else> 
298			${textoArticuloSubstring?substring(0,199)} ... 
299		</#if>	 
300	<#else> 
301		${textoArticuloSubstring} 
302	</#if> 
303</#macro>