Fehler bei der Verarbeitung der Vorlage.
Java method "com.sun.proxy.$Proxy685.getLatestArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy685 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@639e7d6e"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign journalArticle = JournalArtic...  [in template "10155#10193#COM-MEDIA" at line 16, column 1]
----
1<#setting url_escaping_charset='ISO-8859-1'> 
2 
3<#--   local services  --> 
4<#assign JournalArticleService =  serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
5<#assign AssetEntryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
6<#assign assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
7<#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
8  
9 
10<#-- journalarticle and assetentry --> 
11<#assign articleId = .vars['reserved-article-id'].data /> 
12<#assign articleTitle = .vars['reserved-article-title'].data /> 
13<#assign articleDescription = .vars['reserved-article-description'].data /> 
14<#assign articleImage = .vars['reserved-article-small-image-url'].data /> 
15<#assign webContentClassName = "com.liferay.journal.model.JournalArticle"/> 
16<#assign journalArticle = JournalArticleService.getLatestArticle(groupId, articleId) /> 
17<#assign resourcePK = journalArticle.getResourcePrimKey() /> 
18<#assign assetEntry = AssetEntryService.getEntry('com.liferay.journal.model.JournalArticle', resourcePK) />  
19 
20 
21<#-- get category ids of vocabulary --> 
22<#assign Categories = getCategoriesOfVocabulary(assetEntry, "010 Pouvoirs") /> 
23<#assign CategoriesType = getCategoriesOfVocabulary(assetEntry, "020 Typologies") /> 
24 
25<#-- Current url --> 
26<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
27<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
28<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
29  
30  
31  
32  
33 <#assign og_title = articleTitle?replace('<[^>]+>','','r') /> 
34<#assign og_description = articleDescription?replace('<[^>]+>','','r') /> 
35 
36<#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] /> 
37 <#assign og_language = locale.getLanguage() /> 
38<#assign og_languageID = themeDisplay.getLanguageId() /> 
39<#assign og_domain = themeDisplay.getURLPortal() /> 
40<#assign og_siteName = "vs.ch" /> 
41 
42<#assign og_url = og_domain+themeDisplay.getURLCurrent() /> 
43<#-- Open Graph / Facebook --> 
44<@liferay_util["html-top"]><meta property="og:type" content="website"></@> 
45<@liferay_util["html-top"]><meta property="og:locale" content="${og_languageID}"></@> 
46<@liferay_util["html-top"]><meta property="og:site_name" content="${og_siteName}"></@> 
47<@liferay_util["html-top"]><meta property="og:url" content="${og_url}"></@> 
48<@liferay_util["html-top"]><meta property="og:title" content="${og_title}"></@> 
49<@liferay_util["html-top"]><meta property="og:description" content="${og_description} - ${og_url}"></@> 
50<#if image?? && image.getData() != "">  
51    <@liferay_util["html-top"]><meta property="og:image" content="${og_domain}${image.getData()}"></@> 
52</#if> 
53 
54 
55<!-- Twitter --> 
56<@liferay_util["html-top"]><meta property="twitter:card" content="summary_large_image"></@> 
57<@liferay_util["html-top"]><meta property="twitter:url" content="${og_url}"></@> 
58<@liferay_util["html-top"]><meta property="twitter:title" content="${og_title}"></@> 
59<@liferay_util["html-top"]><meta property="twitter:description" content="${og_description}"></@> 
60<#if image?? && image.getData() != "">  
61    <@liferay_util["html-top"]><meta property="twitter:image" content="${og_domain}${image.getData()}"></@> 
62</#if> 
63 
64 
65 
66  
67  
68  
69<#-- ***CR : Gestion de l'embargo*** --> 
70 
71<#function fncGetGroupId pLink> 
72     <#assign lSplit = pLink?split("/")> 
73     <#return lSplit[2]?number>   
74 </#function> 
75  
76 <#-- 
77 <#function fncGetUuid pLink> 
78     <#assign lSplit = pLink?split("/")> 
79     <#return lSplit?last> 
80 </#function>  
81 --> 
82  
83 <#function fncGetUuid pLink> 
84     <#assign lSplit = pLink?split("/")> 
85	 <#assign luuidtimestamp = lSplit?last> 
86	 <#assign luuid = luuidtimestamp?split("?")[0]> 
87     <#return luuid>  
88 </#function> 
89  
90<#if isDocEmpty()=="false" > 
91    <#assign lPublicationDate = journalArticle.getDisplayDate()?datetime/> 
92    <#assign lNow = .now> 
93    <#if lPublicationDate < lNow> 
94        <#assign lRoleService = serviceLocator.findService("com.liferay.portal.kernel.service.RoleLocalService")> 
95        <#assign lPortalPermissionService = serviceLocator.findService("com.liferay.portal.kernel.service.ResourcePermissionLocalService")> 
96        <#assign lDLService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")> 
97        <#assign lScope = 4> 
98        <#assign lCompanyId = companyId> 
99        <#assign lRoleId = lRoleService.getRole(lCompanyId,"Guest").getRoleId()> 
100        <#assign lRole = ["VIEW"]> 
101        <#assign lName = "com.liferay.portlet.documentlibrary.model.DLFileEntry"> 
102      
103        <#if docGroup.getSiblings()?has_content> 
104         	<#list docGroup.getSiblings() as cur_docGroup> 
105				<#if cur_docGroup.annexeDocumentLinkTo??> 
106					<#if cur_docGroup.annexeDocumentLinkTo.getSiblings()?has_content> 
107						<#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_doc> 
108						 
109							<#--  debug point  --> 
110							<#-- <strong>test ${cur_doc.getData()}</strong><br /> string can be empty or in somme cases null --> 
111							<#-- /debug point  --> 
112							<#if cur_doc.getData()?trim != "" && cur_doc.getData() != "null"> 
113								<#assign lGroupId = fncGetGroupId(cur_doc.getData())> 
114								<#assign lUuid = fncGetUuid(cur_doc.getData())> 
115								<#assign lFile = lDLService.getFileEntryByUuidAndGroupId(lUuid, lGroupId)> 
116								<#assign lFileId = lFile.getFileEntryId()> 
117								 
118								<#-- deactivatio de ressource--> 
119								 
120								 
121								 
122								<#--${lPortalPermissionService.setResourcePermissions(lCompanyId, lName, lScope, lFileId?string,lRoleId,lRole)}--> 
123							</#if>  
124						</#list> 
125					</#if> 
126				</#if> 
127         	</#list> 
128         </#if> 
129    </#if> 
130    <#-- ***Fin de la gestion de l'embargo*** -->  
131</#if> 
132 
133<#-- <@getBackLink /> --> 
134<section class="single"> 
135 
136	<style> 
137		p:first-child strong{ 
138			font-size: 125%; 
139			line-height: 1.45em; 
140
141	</style> 
142	 
143	<div class="grid"> 
144		<div class="grid__row"> 
145 
146 
147			<div class="grid__col-m--1"></div> 
148			 
149			 
150			 
151			 
152			<div class="grid__col-xxs--12 grid__col-m--10"> 
153				<#list CategoriesType as cur_cat> 
154					<#if (cur_cat.getDescription(locale)?trim)!="" > 
155						<div class="single-content-type">${cur_cat.getDescription(locale)?trim}</div> 
156					</#if> 
157				</#list> 
158 
159				<#if title?? > 
160					<h1 class="page-title page-title-small">${title.getData()}</h1> 
161				</#if> 
162				 
163								 
164				<div class="single-meta"> 
165					<span class="single-date"> 
166						<@displayArticleDate dateType="published" journalArticle=journalArticle /> 
167					</span> 
168					<#list Categories as cur_cat> 
169						<#if (cur_cat.getDescription(locale)?trim)!="" > 
170							|  
171							<span class="single-cat"> 
172								${cur_cat.getDescription(locale)?trim}  
173							</span> 
174						 </#if> 
175					</#list> 
176				</div> 
177				 
178			</div> 
179			 
180 
181			 
182			<div class="grid__col-m--2"></div> 
183			 
184			<div class="grid__col-xxs--12 grid__col-m--8"> 
185				<div style="text-align: justify;" class="single-content entry-body"> 
186					<#if urlDirect?? && urlDirect.getData()?? && urlDirect.getData()?trim != "" > 
187						<#assign directLinkText = "Lien direct" /> 
188						<#if locale == "de_DE"> 
189							<#assign directLinkText = "Direktlink" /> 
190						</#if> 
191						 
192						<p class="u-tac"> 
193							<a href="${urlDirect.getData()}" class="btn btn-red"> 
194								<span>${directLinkText}</span> 
195							</a> 
196						</p> 
197					</#if>	 
198						 
199					<#if description?? > 
200						${description.getData()?replace("<o:p></o:p>", "")} 
201					</#if> 
202					 
203					<#-- <a href="https://twitter.com/share?ref_src=twsrc%5Etfw" class="twitter-share-button" data-text="${title.getData()}" data-url="${currentUrl}" data-show-count="false">Tweet</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> --> 
204					<#--	 
205						 
206						  <div id="fb-root"></div> 
207					--> 
208							  <script> 
209							  /* 
210							  (function(d, s, id) { 
211							    var js, fjs = d.getElementsByTagName(s)[0]; 
212							    if (d.getElementById(id)) return; 
213							    js = d.createElement(s); js.id = id; 
214							    js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1"; 
215							    fjs.parentNode.insertBefore(js, fjs); 
216							  }(document, 'script', 'facebook-jssdk')); 
217							  */ 
218							  </script> 
219					<#-- 		 
220							  <div class="fb-share-button"  
221							    data-href="https://www.your-domain.com/your-page.html"  
222							    data-layout="button_count"> 
223							  </div> 
224					-->						 
225						 
226						 
227						 
228				</div> 
229				 
230				 
231					<#if isDocEmpty() == "false"> 
232						<@getDownloads /> 
233					</#if> 
234				 
235			</div> 
236			 
237			<div class="grid__col-m--1"></div> 
238		 
239		</div> 
240	</div> 
241</section> 
242<#macro getBackLink>     
243    <#if request.attributes??> 
244        <#assign url = request.attributes.CURRENT_URL /> 
245        <#assign multipleValues = httpUtil.getQueryString(url) /> 
246        <#assign paramMap = httpUtil.getParameterMap(httpUtil.getQueryString(url)) /> 
247        <#list paramMap?keys as key> 
248            <#if key?contains("_redirect")> 
249                <#assign keyFound = key /> 
250            </#if> 
251        </#list> 
252        <#assign encodedUrlString = httpUtil.getParameter(url, keyFound, false) /> 
253        <#assign decodedUrlString = httpUtil.decodeURL(encodedUrlString) /> 
254    </#if>  
255    <div class="clearfix"> 
256        <span class="pull-left muted">${title.getData()} <@displayArticleDate dateType="published" journalArticle=journalArticle /></span>  
257        <#if decodedUrlString??> 
258            <a class="pull-right" href="${decodedUrlString}"><i class="icon-chevron-sign-left"></i> <@liferay.language key="back" /></a> 
259        </#if> 
260        <hr /> 
261    </div>     
262</#macro> 
263 
264<#macro displayArticleDate dateType journalArticle> 
265    <#if serviceLocator??> 
266        <#if dateType == "published"> 
267            ${journalArticle.displayDate?string["dd/MM/yyyy"]} 
268        <#elseif dateType == "modified"> 
269            ${journalArticle.modifiedDate?string["dd/MM/yyyy"]} 
270        <#elseif dateType == "created"> 
271            ${journalArticle.createDate?string["dd/MM/yyyy"]} 
272        </#if> 
273    </#if> 
274</#macro> 
275 
276<#macro getDownloads> 
277 
278    <#list docGroup.getSiblings() as cur_docGroup> 
279        <#if cur_docGroup.data?trim != ""> 
280            <h3 class="block-title u-tac">${cur_docGroup.data}</h3> 
281        </#if> 
282 
283         
284         
285    		<#if cur_docGroup.folderId?? > 
286              	<#if cur_docGroup.folderId.data?trim != "">	 
287        	        <#assign filesInFolder = getFileEntries(groupId, cur_docGroup.folderId.data) /> 
288        	        <#list filesInFolder?sort_by("title") as cur_file> 
289        			  <#-- ${cur_file}<br /><br /> --> 
290					  <div class="grid__row section-docs"> 
291							<@DocumentFromUuid groupId cur_file.uuid /> 
292					  </div>	 
293        	        </#list>  
294        	         
295        	        <#assign filesInFolder = "" /> 
296                </#if> 
297              </#if> 
298		 
299		 
300	        <#if cur_docGroup.annexeDocumentLinkTo??> 
301			<div class="grid__row section-docs"> 
302				 
303                <#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
304                    <#if cur_intDoc.getData()?trim != "" && cur_intDoc.getData() != "null"> 
305	                    <@getDocument docLink=cur_intDoc/>  
306                    </#if> 
307                </#list> 
308				 
309			</div> 
310            </#if> 
311         
312    </#list> 
313</#macro> 
314 
315<#macro DocumentFromUuid group uuid> 
316	<#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, group) /> 
317	<#if document.getTitle()?index_of("/") != 0> 
318 
319		<div class="grid__col-xxs--12 grid__col-s--6"> 
320			<a class="doc-item doc-item-small" href="/documents/${document.groupId}/${document.folderId}/${document.title?url}/${document.uuid}" target="_blank"> 
321				<span class="u-table"> 
322					<span class="u-cell"> 
323						<span class="subtitle">${document.extension}</span> 
324						<span>"${document.getTitle()}</span> 
325					</span> 
326				</span> 
327				<i class="icon icon_arrow-right"> 
328					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
329						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
330						<use xlink:href="#svg-arrow-right"></use> 
331					</svg> 
332				</i> 
333			</a> 
334			<#-- <small class="muted" style="white-space: nowrap;">(${(document.size/1024)?round} <@liferay.language key="vs-kb"/>)</small> --> 
335		</div> 
336    	 
337	</#if> 
338	<#assign document = "" /> 
339</#macro> 
340 
341<#macro getDocument docLink> 
342	<#assign docJSON = jsonFactoryUtil.createJSONObject(docLink.data) /> 
343    <#assign gid = docJSON.groupId /> 
344    <#assign longGid = getterUtil.getLong(gid) /> 
345    <#assign uuid = docJSON.uuid /> 
346    <#if DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid)?? > 
347        <#assign document = DLFileEntryLocalService.getFileEntryByUuidAndGroupId(uuid, longGid) /> 
348     
349    	    <div class="grid__col-xxs--12 grid__col-s--6"> 
350        		<a class="doc-item doc-item-small" href="${docLink.getData()}"> 
351        			<span class="u-table"> 
352        				<span class="u-cell"> 
353        					<span class="subtitle">${document.extension}</span> 
354        					<span>${document.getTitle()}</span> 
355        				</span> 
356        			</span> 
357        		    <i class="icon icon_arrow-right"> 
358    					<svg viewBox="0 0 37.1 12" class="svg_arrow-right"> 
359    						<use xlink:href="/o/vs-theme/css/../assets/svg/sprite.svg#svg-arrow-right"></use> 
360    						<use xlink:href="#svg-arrow-right"></use> 
361    					</svg> 
362    				</i> 
363        		</a> 
364        	</div> 
365	</#if> 
366</#macro> 
367 
368 
369<#macro getDateAndCategory> 
370	<#-- get date and name of category  --> 
371	 
372	 
373 
374</#macro> 
375 
376 
377 
378 
379<#function isDocEmpty> 
380	<#if docGroup?? > 
381		<#list docGroup.getSiblings() as cur_docGroup> 
382			<#if cur_docGroup.annexeDocumentLinkTo?? > 
383				<#list cur_docGroup.annexeDocumentLinkTo.getSiblings() as cur_intDoc> 
384					<#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
385						<#return "false" /> 
386					</#if> 
387				</#list> 
388			</#if> 
389			<#if cur_docGroup.folderId?? > 
390				<#list cur_docGroup.folderId.getSiblings() as cur_intDoc> 
391					<#if cur_intDoc.data?trim != "" && cur_intDoc.data?trim != "null"> 
392						<#return "false" /> 
393					</#if> 
394				</#list> 
395			</#if> 
396			 
397		</#list> 
398	</#if> 
399  <#return "true" /> 
400</#function> 
401 
402<#-- categorie pour mobile app --> 
403 
404 
405<#-- --> 
406 
407 
408<#function getCategoriesOfVocabulary assetEntry vocabularyName> 
409         
410        <#assign categories = assetEntry.getCategories() /> 
411        <#assign categorylist = [] /> 
412        <#list categories as category> 
413            <#assign vocabulary = assetVocabularyService.getVocabulary(category.vocabularyId)/> 
414			<#if vocabulary.name == vocabularyName> 
415                <#-- <#assign categorylist = categorylist + [ category.getDescription(locale) ] /> --> 
416                <#assign categorylist = categorylist + [ category ] /> 
417            </#if> 
418        </#list> 
419        <#return categorylist /> 
420     
421</#function> 
422 
423 
424<#function getFileEntries group folderId> 
425  <#if serviceLocator??> 
426    <#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
427    <#return DLFileEntryLocalService.getFileEntries(group, getterUtil.getLong(folderId)) /> 
428  </#if> 
429  <#return "" /> 
430</#function> 
431 
432 
433 
434 
435 
436<#if isContactEmpty() == "false"> 
437		<div class="grid__col-xxs--12 grid__col-s--4">   
438			<div class="grid__col-xxs--12 grid__col-s--12 services-header">   
439				<div class="grid__col-xxs--12"> 
440					<h3> 
441						<@liferay.language key="vs-contact"/> 
442					</h3> 
443					<@contactInfo/> 
444					<br /> 
445				</div> 
446			</div> 
447		</div> 
448	</#if> 
449 
450 
451 
452 
453 
454 
455 
456<#macro contactInfo> 
457  ${contact.getData()} 
458  <#if serviceLocator??> 
459    <#if contact.contactId?? > 
460      <#if contact.contactId.data?trim != ""> 
461        ${getArticleContent(groupId, contact.contactId.data, "")} 
462      </#if> 
463    </#if> 
464  </#if> 
465</#macro> 
466 
467 
468 
469 
470 
471<#function getArticleContent gid aid tid> 
472	  <#assign article = JournalArticleService.getArticle(gid?number, aid?upper_case) /> 
473		<#assign articleContent = JournalArticleService.getArticleContent(article, tid, null, locale, model, themeDisplay) /> 
474	    <#if articleContent?? > 
475	      <#return articleContent /> 
476	    </#if> 
477	    <#return "" /> 
478</#function> 
479 
480 
481 
482 
483 
484<#function isContactEmpty> 
485    <#if contact?? > 
486      <#if contact.contactId?? > 
487        <#if contact.getData()?trim != "" || contact.contactId.data?trim != "" > 
488          <#return "false" /> 
489        </#if> 
490      <#else> 
491        <#if contact.getData()?trim != "" > 
492          <#return "false" /> 
493        </#if> 
494      </#if> 
495      <#return "true" /> 
496    </#if> 
497    <#return "true" /> 
498</#function>