Une erreur s'est produite lors du traitement du gabarit.
The string doesn't match the expected date/time/date-time format. The string to parse was: "". The expected format was: "yyyy-MM-dd hh:mm:ss.SSS".
The nested reason given follows:
Unparseable date: ""

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign dateModificationStr = dateMod...  [in template "20101#20128#36857" at line 34, column 10]
----
1<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
2<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
3 
4 
5<#--  --# -- main --> 
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService" ) > 
7 
8<#assign dateModificationStr = ""> 
9<#assign dateDebutStr = ""> 
10<#assign dateFinStr = ""> 
11<#assign commentaireCoutPrincipal = ""> 
12<#assign imageCoutPrincipal = ""> 
13	 
14<#assign catnatServiceUtil = utilLocator.findUtil('catnat-services-hook', 'fr.catnat.services.CatNatServiceUtil')> 
15<#attempt> 
16        <#assign infosEvenement = catnatServiceUtil.getInfoEvenement(Numero_AGIR.getData())> 
17    <#recover> 
18        <#assign infosEvenement = [] > 
19    </#attempt> 
20 
21<#if (infosEvenement?has_content)> 
22    <#assign jsonResponse = jsonFactoryUtil.createJSONObject(infosEvenement)> 
23         <#setting time_zone = "Europe/Paris"> 
24         <#setting time_zone = languageUtil.get(locale, "template-timezone")> 
25 
26         <#assign originalLocale = locale> 
27 
28	<#if  jsonResponse.get('dateModification')?is_number> 
29         <#assign dateModification = jsonResponse.getLong('dateModification') + 10800000> 
30         <#assign dateModification = dateModification?number_to_datetime> 
31         <#assign dateModificationStr = dateModification?date?string("dd/MM/yyyy")> 
32    <#else> 
33         <#assign dateModification = jsonResponse.getString('dateModification')> 
34         <#assign dateModificationStr = dateModification?datetime("yyyy-MM-dd hh:mm:ss.SSS")?string("dd/MM/yyyy")>         
35    </#if> 
36      
37      
38    <#if  jsonResponse.get('dateDebut')?is_number> 
39         <#assign dateDebut = jsonResponse.getLong('dateDebut') + 10800000> 
40         <#assign dateDebut = dateDebut?number_to_datetime> 
41         <#assign dateDebutStr = dateDebut?date> 
42    <#else> 
43         <#assign dateDebut = jsonResponse.getString('dateDebut')>  
44         <#assign dateDebutStr = dateDebut?date("yyyy-MM-dd")> 
45         
46    </#if> 
47     <#if  jsonResponse.get('dateFin')?is_number> 
48         <#assign dateFin = jsonResponse.getLong('dateFin') + 10800000> 
49          
50         <#assign dateFin = dateFin?number_to_datetime> 
51         <#assign dateFinStr = dateFin?date> 
52    <#else> 
53         <#assign dateFin = jsonResponse.getString('dateFin')>  
54         <#assign dateFinStr = dateFin?date("yyyy-MM-dd")> 
55         
56    </#if>  
57 
58</#if> 
59		 
60<#--  # -- main --> 
61 <#assign assetUrlToRedirect = journalArticleLocalService.getDisplayArticleByUrlTitle(groupId, .vars['reserved-article-url-title'].data)>  
62 
63<#assign vueMarche = jsonResponse.getJSONObject('vueMarche')> 
64    
65<#--  #Prendre en compte le flag "Afficher cout" dans la contribution Liferay--> 
66<#assign typeEvenement = jsonResponse.getString('typeEvenement')> 
67<#assign title = jsonResponse.getString('libelle')> 
68 
69<#-- <#assign currentUrl = request.get("attributes").CURRENT_COMPLETE_URL > --> 
70 <#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
71<#assign imageShare = "" >  
72<style> 
73	@media (max-width: 767px) { 
74		#event_actions { 
75		    display: none; 
76
77		.fa-download { 
78		    display: none; 
79
80		 
81		#deptTrunc{ 
82		display: none; 
83
84		 
85		#deptAll{ 
86		display: inline !important; 
87
88
89</style> 
90<script> 
91function printEvent() 
92
93    var eventElement = document.getElementById('event_catnat'); 
94    var mywindow = window.open('', 'PRINT', ''); 
95    var printCss = document.getElementById('deptTrunc'); 
96 
97    printCss.innerHTML = document.getElementById('deptAll').innerHTML; 
98 
99    mywindow.document.write('<html><head><title>' + document.title  + '</title>'); 
100    mywindow.document.write('</head><body >'); 
101    mywindow.document.write('<h1>' + document.title  + '</h1>'); 
102    mywindow.document.write(eventElement.innerHTML); 
103    mywindow.document.write('</body></html>'); 
104    printCss 
105 
106    mywindow.document.close(); // necessary for IE >= 10 
107    mywindow.focus(); // necessary for IE >= 10*/ 
108 
109    mywindow.print(); 
110    mywindow.close(); 
111 
112    return true; 
113
114 
115<#--function downloadPDF (){ 
116   return printEvent(); 
117}--> 
118 
119var numeroAgir = '${Numero_AGIR.getData()}'; 
120 
121function displayArretes(callback) { 
122    callback(0, 8, false, '${Numero_AGIR.getData()}'); 
123
124 
125</script> 
126 
127<div class="main-wrapper" id="event_catnat"> 
128    <div class="display-3 primary">${title}</div> 
129    <p> <span class="event_subtitle-txt"> 
130        Mise à jour le ${dateModificationStr}</span></p> 
131    <br> 
132    <div class="row"> 
133        <div class="col-md-8" style="padding: 0;"> 
134    	    <#if (!Image_principale.getData()?has_content)> 
135        		<img src="/images/favicon/mstile-70x70.png" alt="Image Evenement"> 
136        	<#else> 
137        		<img src="${Image_principale.getData()}" class="event_img" alt="Image Evenement"/> 
138        	</#if> 
139             
140          
141                 
142            <#if (validator.isNotNull(Resume.getData()))> 
143                <div class="display-5 primary mt-4">${Resume.getData()}</div> 
144            </#if> 
145        </div> 
146         
147        <div class="col-md-4" style="padding: 0;"> 
148            <table style="width: 100%;border-spacing: 0px;" border="0"> 
149            <tbody> 
150              <tr> 
151                <td style="padding:15px;text-align: left; background-color: #f3f3f3;"> 
152                    <table style="width:100%"> 
153                    <tbody> 
154                    <tr>  
155                        <#if (validator.isNotNull(Information_cle_1_Valeur.getData()))> 
156							<td width="60%"><span class="event_info_title">${Information_cle_1_Valeur.getData()}</span><br><span class="event_info" style="color: #1a5b81; font-weight: bold;">${Information_cle_1_Label.getData()}</span></td>  
157                       </#if> 
158                        <#if (validator.isNotNull(Information_cle_2_Valeur.getData()))> 
159							<td><span class="event_info_title">${Information_cle_2_Valeur.getData()}</span><br><span class="event_info" style="color: #1a5b81;font-weight: bold;">${Information_cle_2_Label.getData()}</span>  </td>  
160                        </#if> 
161                        <#--  --#  Si mise en avant absente => Renseigner le coût de l'événement.--> 
162                        <#if (validator.isNull(Information_cle_1_Valeur.getData()) &&  validator.isNull(Information_cle_2_Valeur.getData()) && getterUtil.getBoolean(Afficher_cout.getData()))> 
163                          <#assign coutMarche = vueMarche.getJSONObject('cout')> 
164                            <td> 
165								<span class="event_info_title" style="font-size: 24px;">${coutMarche.getString("coutStr")}</span><br> 
166								 
167								<span class="event_info" style="color: #1a5b81; font-weight: bold;"> 
168									<#if (validator.isNotNull(Information_cle_cout.getData()))> 
169										${Information_cle_cout.getData()} 
170									<#else> 
171										Dommages assuré hors automobile 
172									</#if> 
173								</span> 
174							</td>  
175                       </#if> 
176                    </tr>  
177                    </tbody> 
178                    </table> 
179                    <hr class="title-category-hr-chatams-blue" style="margin-top: 10px;margin-bottom: 10px;"> 
180            	  <table style="width:100%"> 
181            		  <tr> 
182            			<td width="60%"> 
183            				<b>Date de début </b> 
184            				<br> 
185            				<span class="event_info">${dateDebutStr}</span>  
186            			</td> 
187            			<td> 
188            				<b>Date de fin</b> 
189            				<br> 
190            				<span class="event_info">${dateFinStr}</span>  
191            			</td> 
192            		  </tr> 
193            	  </table> 
194                  
195                  <#if (validator.isNotNull(Cours_eau.getData()))> 
196	                  <br> 
197	                  <b>Cours d'eau ayant débordé</b><br> 
198	                  <p>${Cours_eau.getData()}</p> 
199                  </#if> 
200                   
201                  <#if (validator.isNotNull(jsonResponse.getString('pluviometrie1H'))|| validator.isNotNull(jsonResponse.getString('pluviometrie24H')))> 
202		              <br> 
203		              <br> 
204	                  <b>Pluviométrie maximale</b> 
205	                  <br> 
206	                  <p> 
207	                  	  <#if (validator.isNotNull(jsonResponse.getString('pluviometrie1H')))> 
208	                      	${jsonResponse.getString('pluviometrie1H')} mm en 1h  
209	                      </#if> 
210	                      <#if (validator.isNotNull(jsonResponse.getString('pluviometrie1H')))> 
211		                      <br> 
212		                      ${jsonResponse.getString('pluviometrie24H')} mm en 24 h 
213		                 </#if> 
214	                  </p>  
215                  </#if> 
216                  <br> 
217                  <br> 
218                  <b>Départements concernés</b> <br> 
219                    <#assign deps = jsonResponse.getJSONArray('departementsTouches')> 
220                    <#assign fin = deps.length() - 1> 
221                    
222                    <#assign depsStr = ""> 
223                    <#assign allDepsStr = ""> 
224                     <#assign allDepsPrint = ""> 
225                    <#list 0..fin as i> 
226                       <#assign dep = deps.getString(i)> 
227                        <#if i != 0> 
228                            <#assign separator = ', '> 
229                        <#else> 
230                            <#assign separator = ''> 
231                        </#if> 
232                     
233                         <#assign allDepsStr = allDepsStr + separator + dep> 
234                        <#if i < 6> 
235                            <#assign depsStr = depsStr + separator +dep> 
236                        </#if>   
237                    </#list>              
238                    <#if deps?length gt 6> 
239                        <#assign depsStr = depsStr + " ... "> 
240                     
241                    </#if>   
242                   
243                     
244                  <span id="deptTrunc" class="event_info" title="${allDepsStr}"> 
245                    ${depsStr} 
246                  </span>  
247                   
248                    <span id="deptAll" class="event_info" style="display: none;"> 
249                     ${allDepsStr} 
250                    </span>  
251                  <br> 
252                  <br> 
253                  <div class="pull-right" id="event_actions"> 
254                      
255                      <#--<a href="#" OnClick="javascript:downloadPDF()" title="Telecharger le document"><i style="color:#1a5b81;font-size: 1.8em;" class="fas fa-download"></i></a>--> 
256                      <a href="#" OnClick="javascript:printEvent()" title="Imprimer le document"><i style="color:#1a5b81;font-size: 1.8em;" class="fas fa-print"></i></a> 
257                  </div> 
258                 
259                </td> 
260              </tr> 
261            </tbody> 
262            </table> 
263        </div> 
264    </div> 
265    <br> 
266 
267 
268  
269    <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true" style="text-align:justify"> 
270 
271        <#if (validator.isNotNull(Description.getData()))> 
272        <div class="panel panel-default"> 
273            <div class="panel-heading" role="tab" id="heading1"> 
274            <a role="button" data-toggle="collapse" href="#collapse1" aria-expanded="true" aria-controls="collapse1" class="collapse-head collapsed"> 
275                <h4 class="panel-title"> 
276                    <span class="event_description_title">DESCRIPTION DE L'EVENEMENT</span> 
277                </h4> 
278            </a> 
279            </div> 
280            <div id="collapse1" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading1"> 
281            <div class="panel-body"> 
282                ${Description.getData()} 
283            </div> 
284            </div> 
285        </div> 
286        </#if> 
287 
288 
289        <#if (validator.isNotNull(Dommages.getData()))> 
290 
291        <div class="panel panel-default"> 
292          
293            <div class="panel-heading" role="tab" id="heading2"> 
294                <a role="button" data-toggle="collapse" href="#collapse2" aria-expanded="false" aria-controls="collapse2" class="collapse-head collapsed"> 
295                    <h4 class="panel-title"> 
296                        <span class="event_description_title">DOMMAGES CONSTATES</span> 
297                    </h4> 
298                </a> 
299                </div> 
300             
301            <div id="collapse2" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading2"> 
302            <div class="panel-body"> 
303                ${Dommages.getData()} 
304            </div> 
305            </div> 
306        </div> 
307         </#if> 
308               
309 
310 
311        <#assign communes = jsonResponse.getJSONArray('communesTouchees')> 
312        <#if validator.isNotNull(communes) && communes?length gt 0  && communes != "[]"> 
313        <div class="panel panel-default"> 
314            <div class="panel-heading" role="tab" id="heading3"> 
315                <a role="button" data-toggle="collapse" href="#collapse3" aria-expanded="false" aria-controls="collapse3" class="collapse-head collapsed"> 
316                    <h4 class="panel-title"> 
317                     <span class="event_description_title"> COMMUNES LES PLUS SINISTREES</span> 
318                    </h4> 
319                </a> 
320            </div> 
321            <div id="collapse3" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading3"> 
322            <div class="panel-body"> 
323             
324                <#assign fin = communes?length - 1> 
325                <#list 0..fin as i> 
326                <#assign commune = communes.getString(i)> 
327                    <#if commune??> 
328                        <p>${commune}</p> 
329                    </#if> 
330                </#list> 
331            </div> 
332            </div> 
333        </div> 
334      </#if> 
335 
336 
337 
338 
339        <#assign vueMarche = jsonResponse.getJSONObject('vueMarche')> 
340 
341        <#--  --#Prendre en compte le flag "Afficher cout" dans la contribution Liferay--> 
342        <#assign typeEvenement = jsonResponse.getString('typeEvenement')> 
343             
344        <#if (getterUtil.getBoolean(Afficher_cout.getData()))> 
345             
346        <div class="panel panel-default"> 
347            <div class="panel-heading" role="tab" id="heading4"> 
348                <a role="button" data-toggle="collapse" href="#collapse4" aria-expanded="true" aria-controls="collapse4" class="collapse-head collapsed"> 
349                    <h4 class="panel-title"> 
350                        <span class="event_description_title">COÛT DE L'EVENEMENT</span> 
351                    </h4> 
352                </a> 
353            </div> 
354            <div id="collapse4" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading4"> 
355            <div class="panel-body"> 
356                <#assign coutMarche = vueMarche.getJSONObject('cout')> 
357                <#assign dateCoutPrincipal = coutMarche.getLong('dateCout') + 10800000> 
358                <#assign dateCoutPrincipal = dateCoutPrincipal?number_to_datetime> 
359                <#assign dateCoutPrincipalStr = dateCoutPrincipal?date?string("dd/MM/yyyy")> 
360                     
361                    <p><b>${coutMarche.getString("coutStr")}</b> 
362                     
363                    <#if (cout.getSiblings()?has_content)> 
364                        <#--  # Récupération du commentaire (liferay) correspondant au cout principal 
365                        ## Parcours de la liste des couts du document liferay, pour trouver le commentaire correspondant au cout recu via le service web--> 
366                        <#list  cout.getSiblings() as cur_cout> 
367                            <#assign cout_Data = cur_cout.getData()> 
368                            <#if cout_Data?has_content> 
369                               <#assign cout_DateObj =cout_Data> 
370                             
371                                <#assign coutDate = cout_DateObj?datetime("yyyy-mm-dd")?string("dd/MM/yyyy")> 
372                                <#-- TODO Must check this Part --> 
373                               <#-- <#if (coutDate == dateCoutPrincipalStr)> --> 
374                                  <#assign commentaireCoutPrincipal = getterUtil.getString(cur_cout.getChild("Commentaire_cout").getData())> 
375                                   <#assign imageCoutPrincipal = cur_cout.getChild("Image_cout_par_commune").getData()> 
376                                 <#-- </#if> --> 
377                                     
378                             </#if> 
379                        </#list> 
380                    </#if> 
381                    (mise à jour le : ${dateCoutPrincipalStr}) </p> 
382                    
383                    <#if (validator.isNotNull(commentaireCoutPrincipal))> 
384                        <p>${commentaireCoutPrincipal}</p> 
385                    </#if> 
386                     
387                    <#if (validator.isNotNull(imageCoutPrincipal))> 
388                        <img alt="Cout par commune pour l'ensemble du marché" style="width:100%;" src="${imageCoutPrincipal}" /> 
389                   </#if> 
390                     
391                    <br> 
392                   
393                    <#if vueMarche.get('coutsPrecedents') != "null"> 
394                   
395                        <#assign coutsPrecedents = vueMarche.getJSONArray('coutsPrecedents')> 
396                        <#if  validator.isNotNull(coutsPrecedents) && coutsPrecedents?length gt 0> 
397                     
398                        <p><b>Rappel des estimations précedentes</b></p> 
399                        <#assign fin = coutsPrecedents.length() - 1> 
400                        <#list 0..fin as i> 
401                        <#if  coutsPrecedents.get(i).get('dateCout')?is_number> 
402                           <#assign dateCoutPrecedent = coutsPrecedents.get(i).getString('dateCout')?number + 10800000> 
403                           <#assign dateCoutPrecedent = dateCoutPrecedent?number_to_datetime> 
404                           <#assign dateCoutPrecedentStr = dateCoutPrecedent?date?string("dd/MM/yyyy")> 
405                        <#else> 
406                           <#assign dateCoutPrecedentStr = coutsPrecedents.get(i).get('dateCout')?datetime("yyyy-mm-dd")?string("dd/MM/yyyy")> 
407                        </#if>     
408                             
409                             
410                            <#-- TODO -->  
411                            <#list cout.getSiblings() as cur_cout> 
412                                    <#assign cout_DateObj = cur_cout.getData()> 
413                                    <#assign coutDate =  cout_DateObj?datetime("yyyy-MM-dd")?string("dd/MM/yyyy")> 
414                                    <#-- TODO (Must Check this Part) --> 
415                                    <#-- <#if coutDate==dateCoutPrecedentStr> --> 
416                                        <#assign commentaireCout = getterUtil.getString(cur_cout.getChild("Commentaire_cout").getData())?replace("<p>","")?replace("</p>","")> 
417                                        <p>Le ${dateCoutPrecedentStr} : <b>${coutsPrecedents.get(i).getString("coutStr")}</b> (${commentaireCout})</p> 
418                                  <#--  </#if> --> 
419                            </#list> 
420                             
421                        </#list> 
422                    </#if> 
423                    </#if> 
424                     
425            </div> 
426            </div> 
427        </div> 
428        </#if> 
429        <div class="panel panel-default"> 
430            <div class="panel-heading" role="tab" id="heading5"> 
431                <a role="button" data-toggle="collapse"  href="#collapse5" aria-expanded="true" aria-controls="collapse5" class="collapse-head collapsed"> 
432                    <h4 class="panel-title"> 
433                        <span class="event_description_title">RECONNAISSANCES CAT NAT</span> 
434                    </h4> 
435                </a> 
436             
437            </div> 
438            <div id="collapse5" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading5"> 
439            <div class="panel-body"> 
440                <p>Nombre de communes reconnues Cat Nat : <b>${vueMarche.getString("nombreCommunesReconnuesCatNat")}</b> </p> 
441 
442                <#if (validator.isNotNull(Image_reco.getData()))> 
443                    <img style="max-width:800px;width:100%" alt="Communes reconnues en 굡t de catastrophes naturelle" src="${Image_reco.getData()}" /> 
444                 </#if> 
445            </div> 
446            </div> 
447        </div> 
448 
449        <#if (validator.isNotNull(Source.getData()))> 
450        <div class="panel panel-default"> 
451            <div class="panel-heading" role="tab" id="heading6"> 
452                <a role="button" data-toggle="collapse" href="#collapse6" aria-expanded="true" aria-controls="collapse6" class="collapse-head collapsed"> 
453                     <h4 class="panel-title"> 
454                        <span class="event_description_title">SOURCES</span> 
455                    </h4> 
456                </a> 
457            </div> 
458            <div id="collapse6" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading6"> 
459            <div class="panel-body"> 
460                ${Source.getData()} 
461            </div> 
462            </div> 
463        </div> 
464         </#if> 
465 
466 
467    </div> 
468 
469 
470</div> 
471<div class="ssk-sticky ssk-left ssk-center ssk-lg"> 
472 
473<#assign resumeEvenementSafe = Resume.getData()?replace("\'", "\\'") > 
474<#assign resumeEvenementSafe = resumeEvenementSafe?replace("'", "\\'") > 
475 
476<a href="#" class="ssk ssk-facebook" data-ssk-ready="true"  onclick="shareFacebook(${title},${title},${imageShare}, ${currentUrl}, false); return false;"></a> 
477<a href="" class="ssk ssk-twitter" data-ssk-ready="true" onclick="window.open('http://twitter.com/share?text=${title}&url=${currentUrl}', 'twitter-share-dialog', 'menubar=no,toolbar=no,resizable=yes,scrollbars=no, width=800,height=500');return false;"></a> 
478<a href="#" class="ssk ssk-linkedin" data-ssk-ready="true" onclick="window.open('https://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}', 'linkedin-share-dialog', 'menubar=no,toolbar=no,resizable=yes,scrollbars=no,width=800,height=500');return false;"></a> 
479 
480</div>