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				</#if> 
102				<#assign codServicio = "">                 
103			</#if>   
104		</#foreach>             
105		<#if tramitesHTML != "">                 
106			<div class="taco-tramites"> 
107			<h2>${tramite}</h2> 
108			<ul> 
109				${tramitesHTML} 
110			</ul> 
111			</div> 
112		</#if>             
113		<#-- FIN TRAMITES-->             
114             
115            <div class="taco-datos">     
116            <!-- Datos de contacto, horario, dirección ...--> 
117                 
118            <#-- INI BUSCAMOS LOS DATOS DE LA PRIMERA OFICINA ASOCIADA-->                 
119			<#if codOficinas.getSiblings()?has_content> 
120				<#assign COD_ESQUEMA_OFICINA = "28866968"> 
121				<#assign oficinas = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_OFICINA)>                     
122				<#foreach codOfiServ in codOficinas.getSiblings()>                         
123					<#foreach oficina in oficinas>                             
124						<#if journalArticleLocalService.isLatestVersion(oficina.groupId, oficina.articleId, oficina.version)> 
125							<#assign document = saxReaderUtil.read(oficina.getContentByLocale(locale.toString()))> 
126							<#assign rootElement = document.getRootElement()> 
127							<#assign codOficina = document.valueOf("//dynamic-element[@name='codigo']/dynamic-content/text()") /> 
128							<#assign ofiTelefono = "" /> 
129							<#assign ofiEmail = "" /> 
130							<#assign ofiDireccion = "" /> 
131							<#assign ofiRestoDireccion = "" /> 
132							<#assign ofiHorario = "" /> 
133							<#assign ofiLtlHorario = "" /> 
134							<#if codOfiServ.getData() == codOficina> 
135							    <#assign agNode = document.valueOf("//dynamic-element[@name='agenda']/dynamic-content/text()") /> 
136							    <#assign dirNode = document.valueOf("//dynamic-element[@name='dir']/dynamic-content/text()") /> 
137							    <#assign horNode = document.valueOf("//dynamic-element[@name='hor']/dynamic-content/text()") /> 
138							    <#assign ofiTitulo = oficina.getTitle(locale)> 
139							    <#assign ofiSubTitulo = document.valueOf("//dynamic-element[@name='subNombre']/dynamic-content/text()") /> 
140                                <#assign ofiTelefono = document.valueOf("//dynamic-element[@name='agTelefono']/dynamic-content/text()") /> 
141							    <#assign ofiEmail = document.valueOf("//dynamic-element[@name='agEmail']/dynamic-content/text()") /> 
142							    <#assign ofiDireccion = document.valueOf("//dynamic-element[@name='dirDire1']/dynamic-content/text()") /> 
143							    <#assign ofiRestoDireccion = document.valueOf("//dynamic-element[@name='dirResto']/dynamic-content/text()") /> 
144							    <#assign ofiHorario = document.valueOf("//dynamic-element[@name='horHorario']/dynamic-content/text()") /> 
145							    <#assign ofiLtlHorario = document.valueOf("//dynamic-element[@name='horLiteral']/dynamic-content/text()") /> 
146							<#break> 
147                        </#if>                             
148						</#if>                         
149					</#foreach>                     
150				</#foreach>                 
151			</#if>                 
152			<#--FIN BUSCAMOS LOS DATOS DE LA PRIMERA OFICINA ASOCIADA-->                 
153            <#if agenda.getChild("agTelefono").getData() != "">                    
154				<div class="dato telefono"><a href="tel:${agenda.getChild("agTelefono").getData()}">${agenda.getChild("agTelefono").getData()}</a></div> 
155            <#elseif ofiTelefono != "">                     
156				<div class="dato telefono"><a href="tel:${ofiTelefono}">${ofiTelefono}</a></div> 
157            </#if>                 
158            <#if agenda.getChild("agEmail").getData() != "">                     
159				<div class="dato email"><a href="email:${agenda.getChild("agEmail").getData()}">${agenda.getChild("agEmail").getData()}</a></div> 
160            <#elseif ofiEmail != "">                     
161				<div class="dato email"><a href="email:${ofiEmail}">${ofiEmail}</a></div> 
162            </#if>                
163            <#if hor.getChild("horHorario").getData() != "">                     
164				<div class="dato horario"> 
165                    ${hor.getChild("horHorario").getData()} 
166                </div> 
167            <#elseif ofiHorario != "">                     
168				<div class="dato horario"> 
169                    ${ofiHorario} 
170                </div> 
171            </#if>                 
172            <#if dir.getChild("dirDire1").getData() != "">                     
173				<div class="dato direccion"> 
174                    ${dir.getChild("dirDire1").getData()}<br /> 
175                    ${dir.getChild("dirResto").getData()} 
176                </div> 
177            </#if>                 
178            <#-- INI REDES SOCIALES-->                 
179			<#if siguenos.redNombre.getData() != "">                 
180				<div class="redes"> 
181                <#foreach cur_red in siguenos.redNombre.getSiblings()>                         
182					<span class="${cur_red.getChild("redTipo").getData()}"> 
183                    <a href="${cur_red.getChild("redUrl").getData()}" rel="external" target="_blank" title="${cur_red.getChild("redTipo").getData()} ${cur_red.getData()}"> 
184                    <#if cur_red.getChild("redTipo").getData() == "facebook">                                     
185						<img alt="facebook" src="/documents/9774148/21632780/Facebook/3a10cd66-f046-d6ba-1a5a-2ac6912a5fb6" /> 
186                    <#elseif cur_red.getChild("redTipo").getData() == "twitter">                                     
187						<img alt="Twitter" src="/documents/9774148/21632780/twitter/04abb2f4-3718-23e7-0017-fc934090bf9a" /> 
188                    <#elseif cur_red.getChild("redTipo").getData() == "instagram">                                     
189						<img alt="Instagram" src="/documents/9774148/21632780/instagram/0ff74667-2d2b-a02d-a825-de2d73725fea" />  
190                    <#elseif cur_red.getChild("redTipo").getData() == "youtube">                                     
191						<img alt="Youtube" src="/documents/9774148/21632780/youtube/404d2b0b-3ff6-06cf-3153-71b6b6fc8474" /> 
192                    <#elseif cur_red.getChild("redTipo").getData() == "blog">                                     
193						<img alt="Blog" src="/documents/9774148/21632780/blog/a8d497dc-bbb9-294b-04fb-5b0ffc826ac9" /> 
194                    </#if>                                 
195					<!--i class="icon-${cur_red.getChild("redTipo").getData()}">&nbsp;</i--> 
196                    <span class="hide-text">${cur_red.getChild("redTipo").getData()} ${cur_red.getData()}</span> 
197                    </a> 
198                    </span> 
199                </#foreach>                 
200				</div> 
201            </#if>                 
202			<#-- FIN REDES SOCIALES-->             
203			</div> 
204             
205            <#-- INI MAS INFORMACION-->             
206            <#if masInfo.masInfoNombre.getData() != "">                 
207				<div class="masInfo"> 
208                    <h2>${enlaces}</h2> 
209                	<ul> 
210                    <#foreach cur_enlaceInteres in masInfo.masInfoNombre.getSiblings()>                         
211						<li> 
212                            <a href="${cur_enlaceInteres.getChild("masInfoUrl").getData()}" rel="external" target="_blank"> 
213                                ${cur_enlaceInteres.getData()} 
214                            </a> 
215                        </li> 
216                    </#foreach>                     
217					</ul> 
218                </div> 
219            </#if>             
220			<#-- FIN MAS INFORMACION--> 
221 
222            <#-- INI TEMAS O AREAS-->             
223			<#if codTemas.getSiblings()?has_content>                 
224				<h2>${tema}</h2> 
225                <#assign COD_ESQUEMA_TEMA = "27592875"> 
226				<#assign temas = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_TEMA)>                 
227				<ul> 
228                <#foreach tema in temas>                     
229					<#if journalArticleLocalService.isLatestVersion(tema.groupId, tema.articleId, tema.version)> 
230						<#assign document = saxReaderUtil.read(tema.getContentByLocale(locale.toString()))> 
231						<#assign rootElement = document.getRootElement()> 
232						<#assign codTema = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())>                         
233						<#foreach cur_codTemas in codTemas.getSiblings()>                             
234							<#if cur_codTemas.getData() == codTema> 
235							    <#assign temaURL = tema.urlTitle> 
236								<#assign temaNombre = tema.getTitle(locale)>                                 
237								<li><a href="/${lang}/-/${temaURL}" title="+ info ${temaNombre}">${temaNombre}</a></li> 
238							</#if>                         
239						</#foreach>                     
240					</#if>                 
241				</#foreach>                 
242				</ul> 
243			</#if>             
244	<#-- FIN TEMAS O AREAS--> 
245            
246             
247        </div> 
248    </div> 
249     
250    <div class="dos-columnas"> 
251     
252    <#--INI OFICINAS-->         
253    <#if codOficinas.getSiblings()?has_content> 
254		<#assign COD_ESQUEMA_OFICINA = "28866968"> 
255		<#assign oficinas = journalArticleLocalService.getStructureArticles(scopeGroupId, COD_ESQUEMA_OFICINA)>             
256		<#foreach codOfiServ in codOficinas.getSiblings()>                 
257			<#foreach oficina in oficinas>                     
258				<#if journalArticleLocalService.isLatestVersion(oficina.groupId, oficina.articleId, oficina.version)> 
259					<#assign document = saxReaderUtil.read(oficina.getContentByLocale(locale.toString()))> 
260					<#assign rootElement = document.getRootElement()> 
261					<#assign codOficina = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='codigo']").selectSingleNode(rootElement).getStringValue())>                         
262					<#if codOfiServ.getData() == codOficina>                        <div class="columna"> 
263                    <div class="infoBanner"> 
264                        <#assign agNode = saxReaderUtil.createXPath("dynamic-element[@name='agenda']").selectSingleNode(rootElement)> 
265						<#assign dirNode = saxReaderUtil.createXPath("dynamic-element[@name='dir']").selectSingleNode(rootElement)> 
266						<#assign horNode = saxReaderUtil.createXPath("dynamic-element[@name='hor']").selectSingleNode(rootElement)> 
267						<#assign ofiTitulo = oficina.getTitle(locale)> 
268						<#assign ofiSubTitulo = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='subNombre']").selectSingleNode(rootElement).getStringValue())>     
269                        <#assign ofiTelefono = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='agTelefono']").selectSingleNode(agNode).getStringValue())> 
270						<#assign ofiEmail = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='agEmail']").selectSingleNode(agNode).getStringValue())> 
271						<#assign ofiDireccion = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='dirDire1']").selectSingleNode(dirNode).getStringValue())> 
272						<#assign ofiRestoDireccion = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='dirResto']").selectSingleNode(dirNode).getStringValue())> 
273						<#assign ofiHorario = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='horHorario']").selectSingleNode(horNode).getStringValue())> 
274						<#assign ofiLtlHorario = stringUtil.trim(saxReaderUtil.createXPath("dynamic-element[@name='horLiteral']").selectSingleNode(horNode).getStringValue())> 
275						<#assign ofiURL = oficina.urlTitle>                                 
276						<p class="uu_titulo">${ofiTitulo}</p> 
277                        <#if ofiSubTitulo != "">                                         
278							<p class="uu_subtitulo">${ofiSubTitulo}</p> 
279                        </#if>                                     
280						<#if ofiTelefono != "">                                         
281							<p class="uu_telefonoa"><i class="icon-phone">&nbsp;</i> 
282                                <a href="tel:${ofiTelefono}">${ofiTelefono}</a> 
283                            </p> 
284                        </#if>                                     
285						<#if ofiEmail != "">                                         
286							<p class="uu_email"><a href="mailto:${ofiEmail}?subject=WEB ${.vars['reserved-article-title'].getData()}">${ofiEmail}</a></p> 
287                        </#if>                                     
288						<#if ofiRestoDireccion != "">                                         
289							<p class="uu_direccion">${ofiDireccion}<br />${ofiRestoDireccion}</p> 
290                        </#if>                                     
291						<#if ofiHorario != "">                                         
292							<p class="uu_ordutegia"><strong style="text-transform: uppercase">${ofiLtlHorario}</strong><br /> 
293                                ${ofiHorario} 
294                            </p> 
295                        </#if>                                     
296						<p><a href="/${lang}/-/${ofiURL}">+ info</a></p> 
297                    </div> 
298   </div> 
299</#if>                     
300</#if>                 
301</#foreach>             
302</#foreach>         
303</#if>         
304<#--FIN OFICINAS-->         
305    </div> 
306</div>