Resultado de la búsqueda

Se ha producido un error al procesar la plantilla.
Can't convert this string to number: ""
The blamed expression:
==> cat_id?number  [in template "20098#20124#39149" at line 41, column 99]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign lista_rel_asset = asset_categ...  [in template "20098#20124#39149" at line 41, column 5]
----
1<#assign asset_category_rel = serviceLocator.findService("com.liferay.asset.entry.rel.service.AssetEntryAssetCategoryRelLocalService")> 
2<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
3<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
4 
5 
6 
7<#assign  
8    url_actual = request.getAttribute('CURRENT_URL')  
9    urlt = url_actual?keep_after("?") 
10    list_cat_id = [] 
11    list_art_enco = [] 
12    list_art_final = [] 
13    list_art_no_repeat = [] 
14 
15    art_indx_pc = [] 
16    art_to_show = [] 
17 
18/> 
19 
20<!--almacenamos los artículos encontrados por el publicador de contenidos--> 
21<#if entries?has_content> 
22    <#list entries as curEntry> 
23        <#--${curEntry.getTitle(locale)}--> 
24        <#--<div>${curEntry}</div>--> 
25 
26        <#assign art_indx_pc = art_indx_pc + [curEntry] > 
27    </#list> 
28</#if> 
29 
30 
31 
32<!--Recuperamos los parametros de la url--> 
33<#list urlt?split("&") as param> 
34    <#assign list_cat_id =  list_cat_id + [param?keep_after("=")]> 
35</#list> 
36 
37 
38<!--Obtenemos el listado de artículos que contienen las categorias recibidas como parámetros--> 
39<#list list_cat_id as cat_id> 
40 
41    <#assign lista_rel_asset = asset_category_rel.getAssetEntryAssetCategoryRelsByAssetCategoryId(cat_id?number)>   
42 
43    <#list lista_rel_asset as rel> 
44        <#assign list_art_enco =  list_art_enco + [rel.assetEntryId]>   
45    </#list> 
46 
47</#list> 
48 
49<!--Encontramos los elementos que coinicidan con todos los filtros--> 
50<#list list_art_enco as l> 
51 
52    <#assign no_coin = 0> 
53 
54    <#list list_art_enco as ll> 
55        <#if l == ll> 
56            <#assign no_coin++> 
57        </#if> 
58    </#list> 
59 
60    <#if no_coin == list_cat_id?size> 
61        <#assign list_art_final = list_art_final + [l] > 
62    </#if> 
63 
64</#list> 
65 
66 
67<!--Eliminamos elementos repetidos si los hay--> 
68<#list list_art_final as z> 
69 
70    <#if !list_art_no_repeat?seq_contains(z)> 
71        <#assign list_art_no_repeat = list_art_no_repeat + [z] > 
72    </#if> 
73 
74</#list> 
75 
76 
77 
78<!--comparamos los articulos encontrados con aquellos indexados por el publicador de contenidos--> 
79<#list art_indx_pc as art> 
80 
81    <#list list_art_no_repeat as art_n_r> 
82 
83        <#if art.entryId == art_n_r> 
84            <#assign art_to_show = art_to_show + [art_n_r] > 
85        </#if> 
86 
87    </#list> 
88 
89</#list> 
90 
91 
92 
93<div class="container"> 
94    <div class="row"> 
95 
96        <#if art_to_show?has_content> 
97 
98            <div class="col-12"> 
99                <h1>Resultados de búsqueda</h1> 
100                <br> 
101            </div> 
102             
103            <#list art_to_show as a> 
104 
105                <div class="col-12"> 
106 
107                    <div class="resulta_do"> 
108 
109                        <#assign titulo_comu = AssetEntryLocalService.fetchAssetEntry(a?number) > 
110 
111                        <#assign  
112                            assetRenderer = titulo_comu.getAssetRenderer() 
113                            viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, titulo_comu, true) 
114                        /> 
115 
116 
117                        <div class="tit_resul"> 
118                            <a href="${viewURL}" target="_parent"> 
119                                ${titulo_comu.getTitle(locale)?cap_first} 
120                            </a> 
121                        </div> 
122 
123                        <#assign descripcion = titulo_comu.description> 
124 
125                        <div class="descrip_cion">${descripcion?j_string}</div> 
126 
127                        <div class="fil_tros"> 
128 
129                            <#list list_cat_id as cate> 
130 
131                                <#assign categoria = AssetCategoryLocalService. fetchCategory(cate?number) > 
132                                <span class="nomb_cat">${categoria.name}</span> 
133 
134                            </#list>                         
135 
136                        </div> 
137 
138                    </div> 
139                    <br> 
140 
141                </div> 
142                 
143 
144            </#list> 
145 
146        <#else> 
147            <h1>No hay resultados de búsqueda</h1> 
148        </#if> 
149 
150    </div> 
151</div> 
152 
153<script> 
154 
155    $(function() { 
156        //si hay resultados de búsqueda eliminamos las cadenas <p> 
157         
158        if($(".descrip_cion").length > 0){ 
159            var lst_descr = $(".descrip_cion"); 
160 
161            for (let index = 0; index < lst_descr.length; index++) { 
162                 
163                $(lst_descr[index]).text($(lst_descr[index]).text().replace(/<p>/g,"").replace(/<\/p>/g,"").replace(/<strong>/g,"").replace(/<\/strong>/g,"").replace(/<br \/>/g,"").replace(/<br\/>/g,"").replace(/&nbsp;/g,"")); 
164                 
165
166
167             
168    }); 
169 
170 
171</script>