Asset-Herausgeber

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign pressContact = journalLocalSe...  [in template "20097#20123#43957" at line 212, column 41]
----
1<#-- Structure: News --> 
2 
3<#setting locale=locale.toString()> 
4<#setting date_format="dd. MMMM YYYY"> 
5<#setting datetime_format="yyyy-MM-dd, HH':'mm"> 
6 
7<#assign liferayDateFormat = "EEE, dd MMM yyyy hh:mm:ss zzz" /> 
8<#assign gemaImageStructure = "GEMA Dokument" /> 
9<#assign gemaImageCopyRightIdx = 1 /> 
10<#assign gemaImageAltTextIdx = 0 /> 
11<#assign preeContactLimit = 3 /> 
12 
13<#assign assetCategoryLocalService = serviceLocator.findService('com.liferay.asset.kernel.service.AssetCategoryLocalService')> 
14<#assign journalLocalService = serviceLocator.findService('com.liferay.journal.service.JournalArticleLocalService')> 
15<#assign dLFileEntryService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService')> 
16<#assign dLFileVersionService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileVersionService')> 
17 
18<#assign journalArticleId = .vars['reserved-article-id'].data> 
19<#assign item = journalLocalService.getArticle(groupId, journalArticleId)> 
20<#assign categoryList= assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", item.getResourcePrimKey()?number)> 
21<#assign displayDate = .vars['reserved-article-display-date'].data /> 
22 
23<#list categoryList as category> 
24	<#if ! category.isRootCategory() > 
25		<#assign categoryParent = category.getParentCategory() /> 
26		<#break> 
27	</#if> 
28</#list> 
29 
30<#function getValueFromFileStructure fileEntryId fieldIdx> 
31	<#assign fileEntry = dLFileEntryService.getFileEntry(fileEntryId) /> 
32	<#if (fileEntry.getFileEntryTypeId() > 0) && fileEntry.getDLFileEntryType().getName(locale)?trim == gemaImageStructure > 
33		<#assign fileVersionId = fileEntry.getLatestFileVersion(true).getFileVersionId() /> 
34		<#assign ddmFormFields = fileEntry.getDDMFormValuesMap(fileVersionId) /> 
35		<#list ddmFormFields?keys as structureKey> 
36			<#assign values = ddmFormFields[structureKey].getDDMFormFieldValues() /> 
37			<#assign fieldValue = values[fieldIdx] /> 
38			<#return fieldValue.getValue().getString(locale)> 
39		</#list> 
40	</#if> 
41	<#return ""> 
42</#function> 
43 
44<#function getAltText imageObject> 
45	<#if imageObject.getAttribute("alt")??> 
46		<#assign altText = imageObject.getAttribute("alt")/> 
47		<#if altText?has_content> 
48			<#return altText> 
49		</#if> 
50	</#if> 
51	<#assign altText = getValueFromFileStructure(imageObject.getAttribute("fileEntryId")?number, gemaImageAltTextIdx) /> 
52	<#return altText> 
53</#function> 
54 
55<#function getAltTextJson imageJson> 
56	<#if imageJson.alt??> 
57		<#assign altText = imageJson.alt/> 
58		<#if altText?has_content> 
59			<#return altText> 
60		</#if> 
61	</#if> 
62	<#if imageJson.fileEntryId??> 
63		<#assign altText = getValueFromFileStructure(imageJson.fileEntryId?number, gemaImageAltTextIdx) /> 
64		<#return altText> 
65	</#if> 
66	<#return ""> 
67</#function> 
68 
69<article class="news-detail"> 
70	<header class="news-detail__header text-center"> 
71		<div class="d-flex flex-column container container-fluid-max-xl"> 
72			<div class="content-66"> 
73 
74				<div class="news-detail__meta displaydate overline"> 
75					<#if categoryParent?? >${categoryParent.getName()} / </#if> 
76					 
77					<#setting locale = 'de_De'> 
78					<#assign displayDate = .vars['reserved-article-display-date'].data/> 
79					<#assign displayDateFormated = displayDate?datetime(liferayDateFormat)?date/>		 
80					<#setting locale=locale.toString()> 
81					 
82					${displayDateFormated} 
83				</div> 
84 
85				<h1 class="news-detail__title h2">${.vars['reserved-article-title'].data}</h1> 
86 
87				<div class="news-detail__share"> 
88					<p class="sr-only">Diesen Artikel teilen:</p> 
89					<ul class="news-detail__share-list d-flex justify-content-center"> 
90						<li class="news-detail__share-item"> 
91							<a class="news-detail__share-link news-detail__share-link--facebook" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=${friendlyURLs[themeDisplay.getLanguageId()]!""}"> 
92								<svg class="news-detail__share-icon" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 
93									<path d="M11.9843 0C5.36471 0 0 5.36471 0 11.9843C0 18.6039 5.36471 23.9686 11.9843 23.9686C18.6039 23.9686 23.9686 18.6039 23.9686 11.9843C23.9686 5.36471 18.6353 0 11.9843 0ZM15.8118 6.68235C15.8118 6.68235 14.8078 6.68235 14.2745 6.68235C13.7098 6.68235 12.9569 6.80784 12.9569 8.15686V9.85098H15.7176L15.3412 12.6431H12.9255V19.9843H10.0392V12.6118H7.62353V9.81961H10.0392V8.15686C10.0392 5.52157 11.3569 4.1098 13.3647 4.1098C14.7451 4.1098 15.7804 4.17255 15.7804 4.17255V6.68235H15.8118Z"/> 
94								</svg> 
95								<span class="sr-only">Per Facebook teilen</span> 
96							</a> 
97						</li> 
98						<li class="news-detail__share-item"> 
99							<a class="news-detail__share-link news-detail__share-link--twitter" target="_blank" href="https://twitter.com/home?status=${friendlyURLs[themeDisplay.getLanguageId()]!""}"> 
100								<svg class="news-detail__share-icon" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 
101									<path d="M11.9843 0C5.36471 0 0 5.36471 0 11.9843C0 18.6039 5.36471 23.9686 11.9843 23.9686C18.6039 23.9686 23.9686 18.6039 23.9686 11.9843C23.9686 5.36471 18.6353 0 11.9843 0ZM17.851 9.72549V9.75686C17.851 12.298 16.6902 15.2471 13.8667 16.6275C10.9804 18.0706 7.96863 17.3176 6.49412 16.251C7.71765 16.4392 9.38039 16.0627 10.3216 15.1843C9.53726 15.2784 8.18824 14.6196 7.90588 13.3961C8.18824 13.4275 8.6902 13.5216 9.03529 13.3333C7.90588 13.2078 6.87059 11.9216 6.99608 10.7608C7.24706 10.9804 7.71765 11.1373 8.15686 11.1059C7.18431 10.4157 6.55686 9.03529 7.34118 7.62353C8.21961 8.87843 10.4784 10.2902 12.6745 10.3529C12.6431 10.1647 12.6118 9.97647 12.6118 9.78824C12.6118 8.3451 13.7725 7.18431 15.2157 7.18431C15.9686 7.18431 16.6588 7.49804 17.1294 8.03137C17.851 7.90588 18.8549 7.34118 18.8549 7.34118C18.6353 7.96863 18.1333 8.59608 17.6941 8.75294C18.3216 8.75294 18.7922 8.56471 19.0745 8.3451C18.949 8.75294 18.3216 9.41177 17.851 9.72549Z"/> 
102								</svg> 
103								<span class="sr-only">Twittern</span> 
104							</a> 
105						</li> 
106						<li class="news-detail__share-item"> 
107							<a class="news-detail__share-link news-detail__share-link--linkedin" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=${friendlyURLs[themeDisplay.getLanguageId()]!""}"&title=${.vars['reserved-article-title'].data}"> 
108								<svg class="news-detail__share-icon" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 
109									<path d="M11.9843 0C5.36471 0 0 5.36471 0 11.9843C0 18.6039 5.36471 23.9686 11.9843 23.9686C18.6039 23.9686 23.9686 18.6039 23.9686 11.9843C24 5.36471 18.6353 0 11.9843 0ZM9.31765 16.502H6.83922V9.03529H9.31765V16.502ZM8.06275 7.87451C7.27843 7.87451 6.65098 7.3098 6.65098 6.61961C6.65098 5.92941 7.27843 5.36471 8.06275 5.36471C8.84706 5.36471 9.47451 5.92941 9.47451 6.61961C9.47451 7.3098 8.84706 7.87451 8.06275 7.87451ZM17.9765 16.4392H15.498V11.7333C15.498 11.7333 15.8745 10.2902 14.2745 10.2902C13.302 10.2902 13.0196 10.8863 12.9569 11.6078V16.502H10.6353V8.97255H12.9569V9.97647C13.3961 9.34902 14.2118 8.56471 15.4353 8.56471C17.5373 8.56471 17.9765 9.72549 17.9765 11.9216C17.9765 13.1451 17.9765 16.4392 17.9765 16.4392Z"/> 
110								</svg> 
111								<span class="sr-only">Per LinkedIn teilen</span> 
112							</a> 
113						</li> 
114						<li class="news-detail__share-item"> 
115							<a class="news-detail__share-link news-detail__share-link--xing" target="_blank" href="https://www.xing.com/social_plugins/share?url=${friendlyURLs[themeDisplay.getLanguageId()]!""}"> 
116								<svg class="news-detail__share-icon" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 
117									<path d="M12 0C5.38462 0 0 5.38462 0 12C0 18.6154 5.38462 24 12 24C18.6154 24 24 18.6154 24 12C24 5.38462 18.6154 0 12 0ZM8.06154 15.0154H5.90769C5.78462 15.0154 5.69231 14.9538 5.63077 14.8615C5.56923 14.7692 5.56923 14.6462 5.63077 14.5231L7.90769 10.5231L6.49231 8C6.43077 7.87692 6.43077 7.75385 6.49231 7.66154C6.55385 7.56923 6.64615 7.53846 6.76923 7.53846H8.92308C9.26154 7.53846 9.41539 7.75385 9.50769 7.93846L10.9846 10.4923C10.8923 10.6462 8.67692 14.5846 8.67692 14.5846C8.55385 14.8 8.4 15.0154 8.06154 15.0154ZM18.1846 5.07692L13.4462 13.4769L16.4615 18.9846C16.5231 19.1077 16.5231 19.2308 16.4615 19.3231C16.4 19.4154 16.3077 19.4462 16.1846 19.4462H14.0615C13.7231 19.4462 13.5692 19.2308 13.4769 19.0462L10.4308 13.4769C10.5846 13.2 15.2 5.04615 15.2 5.04615C15.3231 4.83077 15.4462 4.64615 15.7846 4.64615H17.9385C18.0615 4.64615 18.1538 4.70769 18.2154 4.76923C18.2462 4.86154 18.2462 4.95385 18.1846 5.07692Z"/> 
118								</svg> 
119								<span class="sr-only">Per Xing teilen</span> 
120							</a> 
121						</li> 
122					</ul> 
123				</div> 
124 
125				<#if (titleimage.getData())?? && titleimage.getData() != ""> 
126					<figure class="news-detail__title-image-wrapper"> 
127						<img class="news-detail__title-image rounded" alt="${getAltText(titleimage)}" data-fileentryid="${titleimage.getAttribute("fileEntryId")}" src="${titleimage.getData()}" /> 
128 
129						<#assign copyright = getValueFromFileStructure(titleimage.getAttribute("fileEntryId")?number, gemaImageCopyRightIdx) /> 
130						<#if copyright?? && copyright?has_content> 
131							<figcaption class="news-detail__title-image-caption">Copyright: ${copyright}</figcaption> 
132						</#if> 
133 
134					</figure> 
135				</#if> 
136 
137			</div> 
138		</div> 
139	</header> 
140 
141	<section class="news-detail__body"> 
142	 
143		<div class="container container-fluid-max-xl"> 
144			<div class="content-66"> 
145			 
146				<#if (teaserText.getData())?? && (teaserText.getData())?has_content> 
147					<div class="news-detail__intro h5"> 
148							${teaserText.getData()} 
149					</div> 
150				</#if> 
151 
152				<#if Feldergruppen88124806.getSiblings()?has_content> 
153					<#list Feldergruppen88124806.getSiblings() as contentBlock> 
154 
155							<#if (contentBlock.richText.getData())?? && (contentBlock.richText.getData())?has_content> 
156								<div class="news-detail__content-block text"> 
157									${contentBlock.richText.getData()} 
158								</div> 
159							</#if> 
160 
161							<#if (contentBlock.image.getData())?? && contentBlock.image.getData() != ""> 
162								<figure class="news-detail__content-block news-detail__image"> 
163									<img alt="${getAltText(contentBlock.image)}" data-fileentryid="${contentBlock.image.getAttribute("fileEntryId")}" src="${contentBlock.image.getData()}" /> 
164 
165									<#assign copyright = getValueFromFileStructure(contentBlock.image.getAttribute("fileEntryId")?number, gemaImageCopyRightIdx) /> 
166									<#if copyright?? && copyright?has_content> 
167										<figcaption class="copyright">Copyright: ${copyright}</figcaption> 
168									</#if> 
169 
170								</figure> 
171							</#if> 
172 
173							<#if (contentBlock.quoteText.getData())?? && (contentBlock.quoteText.getData())?has_content> 
174 
175								<div class="news-detail__content-block news-detail__quote"> 
176 
177									<#if (contentBlock.quoteImage.getData())?? && contentBlock.quoteImage.getData() != ""> 
178										<img class="news-detail__quote-image rounded-circle square" alt="${getAltText(contentBlock.quoteImage)}" data-fileentryid="${contentBlock.quoteImage.getAttribute("fileEntryId")}" src="${contentBlock.quoteImage.getData()}" /> 
179									<#else> 
180										<svg class="news-detail__quote-svg "width="61" height="51" viewBox="0 0 61 51" fill="none" xmlns="http://www.w3.org/2000/svg"> 
181											<path opacity="0.16" d="M16.7687 0C5.14682 0 0.664107 12.1957 6.80709 19.1646C12.1199 25.0248 11.4558 31.9938 0 43.5559L8.79941 51C39.8464 25.1832 32.3752 0 16.7687 0Z" fill="#5E5E5E"/> 
182											<path opacity="0.16" d="M46.9228 0C35.3877 0 30.9384 12.1957 37.0356 19.1646C42.3088 25.0248 41.6496 31.9938 30.2793 43.5559L39.013 51C69.8283 25.1832 62.4129 0 46.9228 0Z" fill="#5E5E5E"/> 
183										</svg> 
184									</#if>				 
185 
186									<blockquote class="news-detail__quote-text"> 
187										${contentBlock.quoteText.getData()} 
188									</blockquote> 
189							</div> 
190						</#if> 
191					</#list> 
192				</#if> 
193 
194				<#if (video.getData())?? && (video.getData())?has_content> 
195					<figure class="news-detail__content-block news-detail__video-wrapper"> 
196						 <video class="news-detail__video video" controls> 
197								<source src="${video.getData()}" type="video/mp4"> 
198								Your browser does not support the video tag. 
199							</video>  
200					</figure>	 
201				</#if> 
202			</div> 
203		</div> 
204	</section> 
205	<#if pressContact.getSiblings()?has_content> 
206	<footer class="news-detail__footer"> 
207		<#list pressContact.getSiblings() as cur_pressContact> 
208			<#if preeContactLimit gt 0> 
209				<#assign preeContactLimit = preeContactLimit -1/> 
210				<#assign pressContactData = jsonFactoryUtil.createJSONObject(cur_pressContact.getData())/> 
211				<#if cur_pressContact.getData()?has_content> 
212					<#assign pressContact = journalLocalService.getJournalArticleByUuidAndGroupId(pressContactData.uuid, groupId)> 
213 
214					<#assign ddmStructure = pressContact.getDDMStructure() /> 
215					<#assign ddmForm = ddmStructure.getDDMForm() /> 
216					<#assign ddmFormFields = ddmForm.getDDMFormFieldsReferencesMap(true) /> 
217 
218					<#assign document = saxReaderUtil.read(pressContact.getContentByLocale(locale.toString())) /> 
219					<#assign rootElement = document.getRootElement() /> 
220					<#assign ddmFormField = ddmFormFields.image /> 
221					<#assign image = (saxReaderUtil.createXPath("dynamic-element[@name='" + ddmFormField.getName() + "']").selectSingleNode(rootElement).getStringValue())!""/> 
222					<#if image?? && image?has_content> 
223							<#assign imageJson = jsonFactoryUtil.createJSONObject(image)/> 
224							<#assign imageUrl = "" /> 
225							<#if imageJson.url?? && imageJson.url?has_content> 
226								<#assign imageUrl = imageJson.url /> 
227							</#if> 
228					</#if> 
229					<#assign ddmFormField = ddmFormFields.firstName /> 
230					<#assign firstName = (saxReaderUtil.createXPath("dynamic-element[@name='" + ddmFormField.getName() + "']").selectSingleNode(rootElement).getStringValue())!""/> 
231					<#assign ddmFormField = ddmFormFields.lastName /> 
232					<#assign lastName = (saxReaderUtil.createXPath("dynamic-element[@name='" + ddmFormField.getName() + "']").selectSingleNode(rootElement).getStringValue())!""/> 
233					<#assign ddmFormField = ddmFormFields.function /> 
234					<#assign function = (saxReaderUtil.createXPath("dynamic-element[@name='" + ddmFormField.getName() + "']").selectSingleNode(rootElement).getStringValue())!""/> 
235					<#assign ddmFormField = ddmFormFields.phone /> 
236					<#assign phone = (saxReaderUtil.createXPath("dynamic-element[@name='" + ddmFormField.getName() + "']").selectSingleNode(rootElement).getStringValue())!""/> 
237					<#assign ddmFormField = ddmFormFields.email /> 
238					<#assign email = (saxReaderUtil.createXPath("dynamic-element[@name='" + ddmFormField.getName() + "']").selectSingleNode(rootElement).getStringValue())!""/> 
239 
240					<div class="container container-fluid-max-xl"> 
241					<#if pressContact??> 
242						<div class="news-detail__press-contact press-contact text-center"> 
243							<#if imageJson?? && imageJson?has_content && imageJson.fileEntryId??> 
244								<div class="press-contact__img-wrapper"> 
245									<img class="press-contact__img rounded-circle" alt="${getAltTextJson(imageJson)}" data-fileentryid="${imageJson.fileEntryId}" src="${imageUrl}" /> 
246								</div> 
247							</#if> 
248							<dl class="press-contact__name h5"> 
249								<dt class="sr-only">Name: </dt> 
250								<dd> 
251									<#if firstName?? && firstName?has_content> 
252										${firstName} 
253									</#if> 
254									<#if lastName?? && lastName?has_content> 
255										${lastName} 
256									</#if> 
257								</dd> 
258							</dl> 
259							<#if function?? && function?has_content> 
260								<dl class="press-contact__position"> 
261									<dt class="sr-only">Position: </dt> 
262									<dd>${function}</dd> 
263								</dl> 
264							</#if> 
265							<#if phone?? && phone?has_content> 
266								<dl class="press-contact__phone"> 
267									<dt class="sr-only">Telephone: </dt> 
268									<dd>${phone}</dd> 
269								</dl> 
270							</#if> 
271							<#if email?? && email?has_content> 
272								<dl class="press-contact__email"> 
273									<dt class="sr-only">Email: </dt> 
274									<dd><a href="mailto:${email}">${email}</a></dd> 
275								</dl> 
276							</#if> 
277						</div> 
278					</#if> 
279					</div> 
280				</#if> 
281			</#if> 
282		</#list> 
283	</footer> 
284	</#if> 
285 
286</article>