Sostenibilidad-casosPracticos-esclusaSevilla

An error occurred while processing the template.
?substring(...) argument #2 had invalid value: The index must be at least 0, but was -1.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign fileTitle = fileTitle?substri...  [in template "12187455#12187494#1693527" at line 71, column 33]
----
1<div class="caso-practico"> 
2 
3    <#if texto.getData()?has_content && descripcionFieldSet.descripcionFieldSetFieldSet.titulo.getData()?has_content> 
4        <div class="filaCasoPractico casoTitulo textCenter bgNewBlue"> 
5            <#if texto.getData()?has_content> 
6                    <h2>${texto.getData()}</h2> 
7            </#if> 
8         
9            <#if descripcionFieldSet.descripcionFieldSetFieldSet.titulo.getData()?has_content> 
10                <h4>${descripcionFieldSet.descripcionFieldSetFieldSet.titulo.getData()}</h4> 
11            </#if> 
12        </div> 
13    </#if> 
14 
15 
16    <#if descripcionFieldSet.descripcionFieldSetFieldSet.necesidades.getData()?has_content> 
17    <div class="filaCasoPractico"> 
18        <div class="filaCasoPracticoCol1 bgNewBlue"> <p><strong>${descripcionFieldSet.descripcionFieldSetFieldSet.necesidadesTitulo.getData()}:</strong></p> </div> 
19        <div class="filaCasoPracticoCol2"> ${descripcionFieldSet.descripcionFieldSetFieldSet.necesidades.getData()} </div> 
20    </div> 
21    </#if> 
22 
23 
24    <#if descripcionFieldSet.descripcionFieldSetFieldSet.soluciones.getData()?has_content> 
25    <div class="filaCasoPractico"> 
26        <div class="filaCasoPracticoCol1 bgNewBlue"> <p><strong>${descripcionFieldSet.descripcionFieldSetFieldSet.solucionesTitulo.getData()}:</strong></p> </div> 
27        <div class="filaCasoPracticoCol2"> ${descripcionFieldSet.descripcionFieldSetFieldSet.soluciones.getData()} </div> 
28    </div> 
29    </#if> 
30 
31    <#if descripcionFieldSet.descripcionFieldSetFieldSet.resultados.getData()?has_content> 
32    <div class="filaCasoPractico"> 
33        <div class="filaCasoPracticoCol1 bgNewBlue"> <p><strong>${descripcionFieldSet.descripcionFieldSetFieldSet.resultadosTitulo.getData()}:</strong></p> </div> 
34        <div class="filaCasoPracticoCol2"> ${descripcionFieldSet.descripcionFieldSetFieldSet.resultados.getData()} </div> 
35    </div> 
36    </#if> 
37 
38 
39     
40    
41    <#if (locale == "en_US") > 
42        <#assign strdownload = "Download" /> 
43        <#assign strprevious = "Previous" /> 
44        <#assign strnext = "Next" /> 
45    <#else> 
46        <#assign strdownload = "Descargar" /> 
47        <#assign strprevious = "Anterior" /> 
48        <#assign strnext = "Siguiente" /> 
49    </#if> 
50     
51    <#-- ## Galeria de imagenes ## --> 
52   <#if galeriaImagenesFieldSet.imagenFieldSet.getSiblings()?has_content> 
53        <div class="filaCasoPractico casoGaleria bgNewBlue"> 
54            <div id="myCarousel" class="carousel slide" data-ride="carousel"> 
55                <!-- Indicators --> 
56     
57                <ol class="carousel-indicators middle"> 
58                <#assign velocityCount = 1 /> 
59                    <#list galeriaImagenesFieldSet.imagenFieldSet.getSiblings() as img> 
60                    
61 
62                        <#assign titAcc=img.imagenFieldSetFieldSet.tituloAcc.getData() /> 
63                        <#assign titImagen=img.imagenFieldSetFieldSet.tituloImagen.getData() /> 
64                        <#if titAcc?has_content> 
65                            <#if tituloImagen?has_content> 
66                                <#assign titAcc=img.imagenFieldSetFieldSet.tituloImagen.getData() /> 
67                            <#else> 
68                                
69                                <#assign fileTitle = img.imagen.getData()?split("/")[4]!""/> 
70                                <#assign lastIndex = fileTitle?last_index_of(".") /> 
71                                <#assign fileTitle = fileTitle?substring(0, lastIndex) /> 
72                                 
73                                 
74                                <#assign tmp = {} /> 
75                                <#assign URLDecoder = staticUtil["java.net.URLDecoder"] /> 
76<#assign fileTitle = URLDecoder.decode(fileTitle, "UTF-8") /> 
77                                <#assign titAcc = fileTitle /> 
78                            </#if> 
79                        </#if> 
80     
81                     <#if velocityCount == 1> 
82                        <li data-target="#myCarousel" data-slide-to="0" title="${titAcc}" class="active"></li> 
83                     <#else> 
84                        <li data-target="#myCarousel" data-slide-to="${velocityCount + 1}" title="${titAcc}"></li> 
85                     </#if> 
86 
87                     <#assign velocityCount = velocityCount + 1 /> 
88 
89                   </#list> 
90               </ol> 
91     
92     
93              <!-- Wrapper for slides --> 
94              <div class="carousel-inner" role="listbox"> 
95                <#assign velocityCount = 1 /> 
96                <#list galeriaImagenesFieldSet.imagenFieldSet.getSiblings() as img> 
97                    <#if velocityCount == 1 > 
98                      <#assign itemactive="active" /> 
99                    <#else> 
100                      <#assign itemactive="" /> 
101                    </#if> 
102     
103                    <#if img.imagen.getData()?has_content> 
104                        <#-- ## Mostramos el titulo de accesibilidad en cada imagen, 
105                        ## si no lo tiene mostramos el titulo de la imagen sin extension --> 
106                        <#assign titAcc=img.imagenFieldSetFieldSet.tituloAcc.getData() /> 
107                        <#assign titImagen=img.imagenFieldSetFieldSet.tituloImagen.getData() /> 
108     
109                        <#if titAcc?has_content> 
110                            <#if tituloImagen?has_content> 
111                                <#assign titAcc=img.imagenFieldSetFieldSet.tituloImagen /> 
112                            <#else> 
113                                 
114                                <#assign fileTitle = img.imagen.getData()?split("/")[4]!"" /> 
115                                <#assign lastIndex = fileTitle?last_index_of(".") /> 
116                                <#assign fileTitle = fileTitle?substring(0, lastIndex) />  
117                                 
118                                 
119                                <#assign tmp = {} /> 
120                                <#assign URLDecoder = staticUtil["java.net.URLDecoder"] /> 
121<#assign fileTitle = URLDecoder.decode(fileTitle, "UTF-8") /> 
122                                <#assign titAcc = fileTitle /> 
123                            </#if> 
124                        </#if> 
125     
126                         <li class="carousel-item item ${itemactive}"> 
127                             <img alt="${titAcc}" title="${titAcc}" src="${img.imagen.getData()}"/> 
128                             <#if titImagen?has_content> 
129                                <p>${titImagen}</p> 
130                             </#if> 
131                             <#assign src = img.imagen.getData() /> 
132                             <a class="fcc-download" title="${strdownload}" href="${src}&download=true" target="_self"></a> 
133                         </li> 
134                     </#if> 
135 
136                     <#assign velocityCount = velocityCount + 1 /> 
137 
138                </#list> 
139 
140                </div> 
141     
142              <!-- Left and right controls --> 
143              <a class="left carousel-control" href="#myCarousel" title="${strprevious}" role="button" data-slide="prev"> 
144                <span class="simleArrowL" aria-hidden="true"></span> 
145              </a> 
146              <a class="right carousel-control" href="#myCarousel" title="${strnext}" role="button" data-slide="next"> 
147                <span class="simleArrowR" aria-hidden="true"></span> 
148              </a> 
149            </div> 
150        </div> 
151    </#if> 
152</div>