Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement)  [in template "21222#21260#23884203" at line 98, column 78]

----
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 traCodigo = stringUtil.trim(s...  [in template "21222#21260#23884203" at line 98, column 41]
----
1<#assign equipamiento = "Ekipamenduak"> 
2<#assign tramite = "Tramiteak"> 
3<#assign enlaces = "Lotura interesgarriak"> 
4<#assign tema = "Arloak"> 
5 
6<#if locale == "es_ES"> 
7	<#assign equipamiento = "Equipamientos"> 
8	<#assign tramite = "Trámites"> 
9	<#assign enlaces = "Enlaces de interés"> 
10	<#assign tema = "Áreas"> 
11<#else> 
12	<#assign equipamiento = "Ekipamenduak"> 
13	<#assign tramite = "Tramiteak"> 
14	<#assign enlaces = "Lotura interesgarriak"> 
15	<#assign tema = "Arloak"> 
16</#if> 
17 
18 
19 
20<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
21<#assign scopeGroupId = getterUtil.getLong(themeDisplay.getScopeGroupId())> 
22<#assign lang = locale?split('_')[0]> 
23 
24<#assign dLFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryService")>	 
25 
26<h1 tag='servicioview'>${.vars['reserved-article-title'].getData()}</h1> 
27<#if subNombre.getData() != "">     
28	<h2 class="azpititulua">${subNombre.getData()}</h2> 
29</#if> 
30<div class="ficha-servicios"> 
31    <div class="dos-columnas">     
32        <div class="columna">            
33            <#if informacion.getData() != "">                 
34				<div>${informacion.getData()}</div> 
35            </#if>                  
36			<#-- INI EQUIPAMIENTOS-->  
37			<#if codEquipamientos.getSiblings()?has_content> 
38		 
39				<#assign COD_ESQUEMA_EQUIPAMIENTO = "28733825"> 
40				<#assign equipamientos = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_EQUIPAMIENTO)> 
41				<!--<h2>${equipamiento}</h2>--> 
42				<div class="dos-columnas equipamientos">     
43				<#foreach equipamiento in equipamientos>      
44					<#if journalArticleLocalService.isLatestVersion(equipamiento.groupId, equipamiento.articleId, equipamiento.version)> 
45						<#assign document = saxReaderUtil.read(equipamiento.getContentByLocale(locale.toString()))> 
46						<#assign rootElement = document.getRootElement()> 
47						<#assign codEquipamiento = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())>                             
48							 
49						<#foreach cur_codEquipamientos in codEquipamientos.getSiblings()>                                 
50							<#if cur_codEquipamientos.getData() == codEquipamiento> 
51								<#assign equipamientoURL = equipamiento.urlTitle> 
52								<#assign equipamientoNombre = equipamiento.getTitle(locale)> 
53								<#assign equipamientoImagenURL = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='imagenPortadaURL']").selectSingleNode(rootElement).getStringValue())>  
54								 
55								<#if equipamientoImagenURL!=""> 
56                <#assign imagen_map = equipamientoImagenURL?eval /> 
57				<#if imagen_map.groupId?? && imagen_map.groupId?has_content && imagen_map.uuid?? && imagen_map.uuid?has_content>  
58					<#assign fileMi = dLFileEntryService.getFileEntryByUuidAndGroupId(imagen_map.uuid?string, getterUtil.getLong(imagen_map.groupId))> 
59					<#assign miRuta="/documents/${imagen_map.groupId}/${fileMi.getFileEntryId()}/${imagen_map.title}/${imagen_map.uuid}"> 
60				</#if>     
61			<#else>                            
62				<#assign miRuta="">             
63			</#if> 
64 
65								<div class="columna fotos-equipamientos">                                         
66									<a href="/${lang}/-/${equipamientoURL}" title="+ info ${equipamientoNombre}"> 
67										<span class="imagen"> 
68											<img src="${miRuta}" alt="${equipamientoNombre}"/><br> 
69										</span> 
70										${equipamientoNombre} 
71									</a> 
72								</div> 
73							</#if>                             
74						</#foreach>                         
75					</#if>                     
76				</#foreach>                
77				</div> 
78			</#if>             
79			<#-- FIN EQUIPAMIENTOS-->              
80			<#if urlExterno.getData() != "">                 
81				<p><a  class="boton principal" href="${urlExterno.getData()}"> + info</a></p> 
82			</#if>             
83			</div> 
84         
85        <div class="columna"> 
86        <#-- INI TRAMITES--> 
87		<#assign tramitesHTML = ""> 
88		<#assign COD_ESQUEMA_TRAMITE = "21801873"> 
89		<#assign tramites = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_TRAMITE)>  
90		<#foreach tramite in tramites> 
91	  	<#if journalArticleLocalService.isLatestVersion(tramite.groupId, tramite.articleId, tramite.version)> 
92				<#assign document = saxReaderUtil.read(tramite.getContentByLocale(locale.toString()))> 
93				<#assign rootElement = document.getRootElement()> 
94				<#assign codServicio = document.valueOf("//dynamic-element[@name='codServicio']/dynamic-content/text()") /> 
95				<#if codigo.getData() == codServicio> 
96					<#assign traURL = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='lotura']").selectSingleNode(rootElement).getStringValue())> 
97					<#assign traDescripcion = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='deskribapena']").selectSingleNode(rootElement).getStringValue())> 
98					<#assign traCodigo = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())> 
99					<#assign traTitulo = tramite.getTitle(locale)> 
100					<#assign tramitesHTML = tramitesHTML + "<li><a href='" + traURL + "'>" + traTitulo + "</a></li>">  	           
101				<#else> 
102				     
103				</#if> 
104				<#assign codServicio = "">                 
105				 
106			</#if>   
107			 
108		</#foreach>             
109		<#if tramitesHTML != "">                 
110			<div class="taco-tramites"> 
111			<h2>${tramite}</h2> 
112			<ul> 
113				${tramitesHTML} 
114			</ul> 
115			</div> 
116		</#if>  
117 
118		<#-- FIN TRAMITES-->             
119             
120            <div class="taco-datos">     
121            <!-- Datos de contacto, horario, dirección ...--> 
122                 
123            <#-- INI BUSCAMOS LOS DATOS DE LA PRIMERA OFICINA ASOCIADA-->                 
124			<#if codOficinas.getSiblings()?has_content> 
125				<#assign COD_ESQUEMA_OFICINA = "28866968"> 
126				<#assign oficinas = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_OFICINA)>                     
127				<#foreach codOfiServ in codOficinas.getSiblings()>                         
128					<#foreach oficina in oficinas>                             
129						<#if journalArticleLocalService.isLatestVersion(oficina.groupId, oficina.articleId, oficina.version)> 
130							<#assign document = saxReaderUtil.read(oficina.getContentByLocale(locale.toString()))> 
131							<#assign rootElement = document.getRootElement()> 
132							<#assign codOficina = document.valueOf("//dynamic-element[@name='codigo']/dynamic-content/text()") /> 
133							<#assign ofiTelefono = "" /> 
134							<#assign ofiEmail = "" /> 
135							<#assign ofiDireccion = "" /> 
136							<#assign ofiRestoDireccion = "" /> 
137							<#assign ofiHorario = "" /> 
138							<#assign ofiLtlHorario = "" /> 
139							<#if codOfiServ.getData() == codOficina> 
140							    <#assign agNode = document.valueOf("//dynamic-element[@name='agenda']/dynamic-content/text()") /> 
141							    <#assign dirNode = document.valueOf("//dynamic-element[@name='dir']/dynamic-content/text()") /> 
142							    <#assign horNode = document.valueOf("//dynamic-element[@name='hor']/dynamic-content/text()") /> 
143							    <#assign ofiTitulo = oficina.getTitle(locale)> 
144							    <#assign ofiSubTitulo = document.valueOf("//dynamic-element[@name='subNombre']/dynamic-content/text()") /> 
145                                <#assign ofiTelefono = document.valueOf("//dynamic-element[@name='agTelefono']/dynamic-content/text()") /> 
146							    <#assign ofiEmail = document.valueOf("//dynamic-element[@name='agEmail']/dynamic-content/text()") /> 
147							    <#assign ofiDireccion = document.valueOf("//dynamic-element[@name='dirDire1']/dynamic-content/text()") /> 
148							    <#assign ofiRestoDireccion = document.valueOf("//dynamic-element[@name='dirResto']/dynamic-content/text()") /> 
149							    <#assign ofiHorario = document.valueOf("//dynamic-element[@name='horHorario']/dynamic-content/text()") /> 
150							    <#assign ofiLtlHorario = document.valueOf("//dynamic-element[@name='horLiteral']/dynamic-content/text()") /> 
151							<#break> 
152                        </#if>                             
153						</#if>                         
154					</#foreach>                     
155				</#foreach>                 
156			</#if>                 
157			<#--FIN BUSCAMOS LOS DATOS DE LA PRIMERA OFICINA ASOCIADA-->                 
158            <#if agenda.getChild("agTelefono").getData() != "">                    
159				<div class="dato telefono"><a href="tel:${agenda.getChild("agTelefono").getData()}">${agenda.getChild("agTelefono").getData()}</a></div> 
160            <#elseif ofiTelefono != "">                     
161				<div class="dato telefono"><a href="tel:${ofiTelefono}">${ofiTelefono}</a></div> 
162            </#if>                 
163            <#if agenda.getChild("agEmail").getData() != "">                     
164				<div class="dato email"><a href="email:${agenda.getChild("agEmail").getData()}">${agenda.getChild("agEmail").getData()}</a></div> 
165            <#elseif ofiEmail != "">                     
166				<div class="dato email"><a href="email:${ofiEmail}">${ofiEmail}</a></div> 
167            </#if>                
168            <#if hor.getChild("horHorario").getData() != "">                     
169				<div class="dato horario"> 
170                    ${hor.getChild("horHorario").getData()} 
171                </div> 
172            <#elseif ofiHorario != "">                     
173				<div class="dato horario"> 
174                    ${ofiHorario} 
175                </div> 
176            </#if>                 
177            <#if dir.getChild("dirDire1").getData() != "">                     
178				<div class="dato direccion"> 
179                    ${dir.getChild("dirDire1").getData()}<br /> 
180                    ${dir.getChild("dirResto").getData()} 
181                </div> 
182            </#if>                 
183            <#-- INI REDES SOCIALES-->                 
184			<#if siguenos.redNombre.getData() != "">                 
185				<div class="redes"> 
186                <#foreach cur_red in siguenos.redNombre.getSiblings()>                         
187					<span class="${cur_red.getChild("redTipo").getData()}"> 
188                    <a href="${cur_red.getChild("redUrl").getData()}" rel="external" target="_blank" title="${cur_red.getChild("redTipo").getData()} ${cur_red.getData()}"> 
189                    <#if cur_red.getChild("redTipo").getData() == "facebook">                                     
190						<img alt="facebook" src="/documents/9774148/21632780/Facebook/3a10cd66-f046-d6ba-1a5a-2ac6912a5fb6" /> 
191                    <#elseif cur_red.getChild("redTipo").getData() == "twitter">                                     
192						<img alt="Twitter" src="/documents/9774148/21632780/twitter/04abb2f4-3718-23e7-0017-fc934090bf9a" /> 
193                    <#elseif cur_red.getChild("redTipo").getData() == "instagram">                                     
194						<img alt="Instagram" src="/documents/9774148/21632780/instagram/0ff74667-2d2b-a02d-a825-de2d73725fea" />  
195                    <#elseif cur_red.getChild("redTipo").getData() == "youtube">                                     
196						<img alt="Youtube" src="/documents/9774148/21632780/youtube/404d2b0b-3ff6-06cf-3153-71b6b6fc8474" /> 
197                    <#elseif cur_red.getChild("redTipo").getData() == "blog">                                     
198						<img alt="Blog" src="/documents/9774148/21632780/blog/a8d497dc-bbb9-294b-04fb-5b0ffc826ac9" /> 
199                    </#if>                                 
200					<!--i class="icon-${cur_red.getChild("redTipo").getData()}">&nbsp;</i--> 
201                    <span class="hide-text">${cur_red.getChild("redTipo").getData()} ${cur_red.getData()}</span> 
202                    </a> 
203                    </span> 
204                </#foreach>                 
205				</div> 
206            </#if>                 
207			<#-- FIN REDES SOCIALES-->             
208			</div> 
209             
210            <#-- INI MAS INFORMACION-->             
211            <#if masInfo.masInfoNombre.getData() != "">                 
212				<div class="masInfo"> 
213                    <h2>${enlaces}</h2> 
214                	<ul> 
215                    <#foreach cur_enlaceInteres in masInfo.masInfoNombre.getSiblings()>                         
216						<li> 
217                            <a href="${cur_enlaceInteres.getChild("masInfoUrl").getData()}" rel="external" target="_blank"> 
218                                ${cur_enlaceInteres.getData()} 
219                            </a> 
220                        </li> 
221                    </#foreach>                     
222					</ul> 
223                </div> 
224            </#if>             
225			<#-- FIN MAS INFORMACION--> 
226 
227            <#-- INI TEMAS O AREAS-->             
228			<#if codTemas.getSiblings()?has_content>                 
229				<h2>${tema}</h2> 
230                <#assign COD_ESQUEMA_TEMA = "27592875"> 
231				<#assign temas = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_TEMA)>                 
232				<ul> 
233                <#foreach tema in temas>                     
234					<#if journalArticleLocalService.isLatestVersion(tema.groupId, tema.articleId, tema.version)> 
235						<#assign document = saxReaderUtil.read(tema.getContentByLocale(locale.toString()))> 
236						<#assign rootElement = document.getRootElement()> 
237						<#assign codTema = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())>                         
238						<#foreach cur_codTemas in codTemas.getSiblings()>                             
239							<#if cur_codTemas.getData() == codTema> 
240							    <#assign temaURL = tema.urlTitle> 
241								<#assign temaNombre = tema.getTitle(locale)>                                 
242								<li><a href="/${lang}/-/${temaURL}" title="+ info ${temaNombre}">${temaNombre}</a></li> 
243							</#if>                         
244						</#foreach>                     
245					</#if>                 
246				</#foreach>                 
247				</ul> 
248			</#if>             
249	<#-- FIN TEMAS O AREAS--> 
250            
251             
252        </div> 
253    </div> 
254     
255    <div class="dos-columnas"> 
256     
257    <#--INI OFICINAS-->         
258    <#if codOficinas.getSiblings()?has_content> 
259		<#assign COD_ESQUEMA_OFICINA = "28866968"> 
260		<#assign oficinas = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_OFICINA)>             
261		<#foreach codOfiServ in codOficinas.getSiblings()>                 
262			<#foreach oficina in oficinas>                     
263				<#if journalArticleLocalService.isLatestVersion(oficina.groupId, oficina.articleId, oficina.version)> 
264					<#assign document = saxReaderUtil.read(oficina.getContentByLocale(locale.toString()))> 
265					<#assign rootElement = document.getRootElement()> 
266					<#assign codOficina = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())>                         
267					<#if codOfiServ.getData() == codOficina>                        <div class="columna"> 
268                    <div class="infoBanner"> 
269                        <#assign agNode = saxReaderUtil.createXPath("dynamic-element[@name='agenda']").selectSingleNode(rootElement)> 
270						<#assign dirNode = saxReaderUtil.createXPath("dynamic-element[@name='dir']").selectSingleNode(rootElement)> 
271						<#assign horNode = saxReaderUtil.createXPath("dynamic-element[@name='hor']").selectSingleNode(rootElement)> 
272						<#assign ofiTitulo = oficina.getTitle(locale)> 
273						<#assign ofiSubTitulo = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='subNombre']").selectSingleNode(rootElement).getStringValue())>     
274                        <#assign ofiTelefono = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='agTelefono']").selectSingleNode(agNode).getStringValue())> 
275						<#assign ofiEmail = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='agEmail']").selectSingleNode(agNode).getStringValue())> 
276						<#assign ofiDireccion = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='dirDire1']").selectSingleNode(dirNode).getStringValue())> 
277						<#assign ofiRestoDireccion = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='dirResto']").selectSingleNode(dirNode).getStringValue())> 
278						<#assign ofiHorario = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='horHorario']").selectSingleNode(horNode).getStringValue())> 
279						<#assign ofiLtlHorario = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='horLiteral']").selectSingleNode(horNode).getStringValue())> 
280						<#assign ofiURL = oficina.urlTitle>                                 
281						<p class="uu_titulo">${ofiTitulo}</p> 
282                        <#if ofiSubTitulo != "">                                         
283							<p class="uu_subtitulo">${ofiSubTitulo}</p> 
284                        </#if>                                     
285						<#if ofiTelefono != "">                                         
286							<p class="uu_telefonoa"><i class="icon-phone">&nbsp;</i> 
287                                <a href="tel:${ofiTelefono}">${ofiTelefono}</a> 
288                            </p> 
289                        </#if>                                     
290						<#if ofiEmail != "">                                         
291							<p class="uu_email"><a href="mailto:${ofiEmail}?subject=WEB ${.vars['reserved-article-title'].getData()}">${ofiEmail}</a></p> 
292                        </#if>                                     
293						<#if ofiRestoDireccion != "">                                         
294							<p class="uu_direccion">${ofiDireccion}<br />${ofiRestoDireccion}</p> 
295                        </#if>                                     
296						<#if ofiHorario != "">                                         
297							<p class="uu_ordutegia"><strong style="text-transform: uppercase">${ofiLtlHorario}</strong><br /> 
298                                ${ofiHorario} 
299                            </p> 
300                        </#if>                                     
301						<p><a href="/${lang}/-/${ofiURL}">+ info</a></p> 
302                    </div> 
303   </div> 
304</#if>                     
305</#if>                 
306</#foreach>             
307</#foreach>         
308</#if>         
309<#--FIN OFICINAS-->         
310    </div> 
311</div>