null Apertura del Hackathon Artificial Intelligence for Earth
Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy646.getLatestArticle(long)" threw an exception when invoked on com.sun.proxy.$Proxy646 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@5ae58528"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: galeriaAudios = journalArticleLocalSe...  [in template "533381#533416#TPL_NOTICIA" at line 152, column 17]
	- Reached through: #assign-container  [in template "533381#533416#TPL_NOTICIA" at line 151, column 17]
----
1<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") 
2		 journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
3		 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")	 
4		 assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
5/>    
6       		 
7<#if ! themeDisplay ? has_content>         
8    <#assign liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"] /> 
9    <@liferay_theme["defineObjects"] /> 
10</#if> 
11	 				 
12<div class="nota"> 	 
13    <#assign journalArticleId = .vars['reserved-article-id'].data 
14			 journalArticle = journalArticleService.getLatestArticle(groupId,journalArticleId) 
15     		 assetEntry = assetEntryLocalService.fetchEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()?number) 		 	  
16 	/>	 
17      
18	<#if subtitulo.getData()?? && subtitulo.getData() != ""> 
19		<div class="entradilla">   
20			${subtitulo.getData()} 
21		</div> 
22	</#if> 
23	      
24    <#assign fecha_Data = getterUtil.getString(fecha.getData())> 
25	<#if validator.isNotNull(fecha_Data)> 
26		<#assign fecha_DateObj = dateUtil.parseDate("yyyy-MM-dd", fecha_Data, locale)> 
27		<div class="date">${dateUtil.getDate(fecha_DateObj, "dd 'de' MMMM 'de' yyyy", locale)}</div> 
28	</#if>	 
29		         
30    <#if resumen.getData()?? && resumen.getData() != ""> 
31		<div class="subtitle">${resumen.getData()}</div> 
32	</#if>	 
33   
34	<#if imagen.getData()?? && imagen.getData() != ""> 
35		<div class="imagen-principal">					 
36			<img data-fileentryid="${imagen.getAttribute("fileEntryId")}" alt="${imagen.getAttribute("alt")}" src="${imagen.getData()}" />			 
37		</div>	 
38	</#if> 	 
39	 
40 
41	 
42	<#if descripcion.getData()?? && descripcion.getData() != ""> 
43		<div class="description">   
44			${descripcion.getData()} 
45		</div> 
46	</#if> 
47	 
48	<#if (documentosRelacionados?has_content && documentosRelacionados.getSiblings()?has_content && documentosRelacionados.getSiblings()[0].documento.getData()!="" )> 
49		<div class="contenido-article documentacion"> 
50			<h4><@liferay.language key="actualidad.article.documentacion" /></h4> 
51			<ul>	 
52				<#list documentosRelacionados.getSiblings() as cur_documentoRelacionado> 
53					<#if cur_documentoRelacionado.documento.getData()??>							 
54			    	    <#assign fileEntryUrl = cur_documentoRelacionado.documento.getData() 
55				             fileUuidPosition = (fileEntryUrl?last_index_of("/")) + 1 
56				             fileEntryUrlLength = (fileEntryUrl?length) - 1 
57				             fileUuid = fileEntryUrl[fileUuidPosition..fileEntryUrlLength]			              
58				             fileUuidPosition2 = (fileUuid ?last_index_of("?")) -1 
59							 fileUuid2 = fileUuid[0..fileUuidPosition2]						 
60							 fileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(fileUuid2,groupId) 
61				             />         
62					    <#assign nombreFichero = fileEntry.getTitle() /> 
63					    <#if (cur_documentoRelacionado.textoAlternativo.getData()?? && cur_documentoRelacionado.textoAlternativo.getData() != "")> 
64							 <#assign nombreFichero = cur_documentoRelacionado.textoAlternativo.getData() /> 
65						</#if>			            
66						 
67						<li><a title="${nombreFichero}. <@liferay.language key="actualidad.general.external-link" />"  
68						   href="${fileEntryUrl}" class="${fileEntry.getExtension()}" target="_blank"> 
69						   ${nombreFichero} 
70						</a></li> 	                            		 
71					 </#if>							   	 
72				</#list>	 
73			</ul>	 
74		</div>							 
75	</#if>			 
76 
77	<#if (enlaces?has_content && enlaces.getSiblings()?has_content && enlaces.getSiblings()[0].urlEnlace.getData()?has_content)> 
78		<div class="contenido-article documentacion"> 
79			<h4><@liferay.language key="actualidad.article.enlaces-relacionados" /></h4> 
80			<ul>	 
81				<#list enlaces.getSiblings() as cur_enlacesRelacionados>								 
82				    <#if cur_enlacesRelacionados.urlEnlace.getData() ? has_content> 
83			    	    <#assign nombreEnlace = cur_enlacesRelacionados.urlEnlace.getData()> 
84					    <#if (cur_enlacesRelacionados.textoAlternativoEnlace.getData()?? && cur_enlacesRelacionados.textoAlternativoEnlace.getData() != "")> 
85							 <#assign nombreEnlace = cur_enlacesRelacionados.textoAlternativoEnlace.getData()> 
86						</#if> 
87						<li>			 
88							<a class="popup" target="_blank" href="${cur_enlacesRelacionados.urlEnlace.getData()}"  
89								title="${nombreEnlace}. <@liferay.language key="actualidad.general.external-link" />">${nombreEnlace}	</a> 
90						</li>	 
91				    </#if>							   	 
92				</#list>	 
93			</ul>		 
94		</div>			 
95	</#if>	 
96				 
97    <#if (otrasImagenes?has_content && otrasImagenes.getSiblings()?has_content && otrasImagenes.getSiblings()[0].imagenesSinGaleria.getData()?has_content) || (fotografiasDestacadasEnlaceAGaleria.getData()?? && fotografiasDestacadasEnlaceAGaleria.getData() != "") > 
98    	<div class="fotografias-nota documentacion"> 
99	        <h4><@liferay.language key="actualidad.article.imagenes" /></h4> 
100	    
101		    <#if  fotografiasDestacadasEnlaceAGaleria.getData()?? && fotografiasDestacadasEnlaceAGaleria.getData() != ""> 
102		        <#assign fotosDestacadoID = jsonFactoryUtil.createJSONObject(fotografiasDestacadasEnlaceAGaleria.getData()) 
103		        		 galeriaFotos = journalArticleLocalService.getLatestArticle(fotosDestacadoID.get("classPK")?number)> 
104		         
105		        ${journalArticleLocalService.getArticleContent(galeriaFotos, "" , "VIEW", locale, themeDisplay)} 
106		    </#if> 
107         
108			<#if otrasImagenes?has_content && otrasImagenes.getSiblings()?has_content && otrasImagenes.getSiblings()[0].imagenesSinGaleria.getData()?has_content >  
109			    <div class="imagenes-relacionadas-sinGaleria">      
110			        <div class="row"> 
111			            <#list otrasImagenes.getSiblings() as cur_otraImagen>  
112		                    <#if cur_otraImagen.imagenesSinGaleria.getData()?? && cur_otraImagen.imagenesSinGaleria.getData() != "">  
113	                            <div class="col-md-4 detail-item-image"> 
114	                                <div class="imagen"> 
115	                                	<a class="example-image-link" href="${cur_otraImagen.imagenesSinGaleria.getData()}"  data-lightbox="example-set" data-title="${cur_otraImagen.tituloImagenSinGaleria.getData()}" data-alt="${cur_otraImagen.tituloImagenSinGaleria.getData()}"> 
116	                                        <img alt="${cur_otraImagen.imagenesSinGaleria.getAttribute("alt")}" data-fileentryid="${cur_otraImagen.imagenesSinGaleria.getAttribute("fileEntryId")}" src="${cur_otraImagen.imagenesSinGaleria.getData()}" />  
117	                                    </a> 
118	                                </div> 
119	                                <#if cur_otraImagen.tituloImagenSinGaleria.getData()?has_content && cur_otraImagen.tituloImagenSinGaleria.getData() != "">  
120		                                <div class="titulo-imagen"> 
121									    	${cur_otraImagen.tituloImagenSinGaleria.getData()}	 
122										</div> 
123										<div class="descripcion-imagen"> 
124									    	${cur_otraImagen.descripcionImagenSinGaleria.getData()} 
125										</div> 
126									</#if>		 
127	                            </div> 
128		                    </#if>  
129			            </#list>  
130			        </div> 
131			    </div>			    	 
132			</#if> 
133		</div> 
134 	</#if> 
135 	 
136	<#if videosDestacados.getData()?? && videosDestacados.getData() != ""> 
137		<div class="videos-nota documentacion"> 
138			<h4><@liferay.language key="actualidad.article.videos" /></h4> 
139         
140            <#assign videoDestacadoID = jsonFactoryUtil.createJSONObject(videosDestacados.getData()) 
141            galeriaVideos = journalArticleLocalService.getLatestArticle(videoDestacadoID.get("classPK")?number)> 
142             
143            ${journalArticleLocalService.getArticleContent(galeriaVideos, "" , "VIEW", locale, themeDisplay)} 
144    	</div> 
145	</#if> 
146 
147    <#if AudiosDestacados.getData()?? && AudiosDestacados.getData() != ""> 
148    	<div class="audio-nota documentacion"> 
149	        <h4><@liferay.language key="actualidad.article.audios" /></h4> 
150	         
151	        <#assign audiosDestacadoID = jsonFactoryUtil.createJSONObject(AudiosDestacados.getData()) 
152	        galeriaAudios = journalArticleLocalService.getLatestArticle(audiosDestacadoID.get("classPK")?number)> 
153	         
154	        ${journalArticleLocalService.getArticleContent(galeriaAudios, "" , "VIEW", locale, themeDisplay)} 
155    	</div> 
156    </#if> 
157							 
158</div>