An error occurred while processing the template.
The following has evaluated to null or missing:
==> fileDataHelperUtil.getAltText(contentBlock.quoteImage.getAttribute("fileEntryId")?number, locale)  [in template "20097#20123#97091" at line 139, column 108]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${fileDataHelperUtil.getAltText(conte...  [in template "20097#20123#97091" at line 139, column 106]
----
1<#-- Structure: News --> 
2 
3<#setting locale=locale.toString()> 
4<#if locale == "en_US"> 
5    <#setting date_format="dd MMMM YYYY"> 
6<#else> 
7    <#setting date_format="dd. MMMM YYYY"> 
8</#if> 
9<#setting datetime_format="yyyy-MM-dd, HH':'mm"> 
10 
11<#assign liferayDateFormat = "EEE, dd MMM yyyy hh:mm:ss zzz" /> 
12<#assign preeContactLimit = 3 /> 
13 
14<#assign assetService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryService")> 
15<#assign assetCategoryLocalService = serviceLocator.findService('com.liferay.asset.kernel.service.AssetCategoryLocalService')> 
16<#assign journalLocalService = serviceLocator.findService('com.liferay.journal.service.JournalArticleLocalService')> 
17 
18<#assign version = .vars['reserved-article-version'].data?number?double /> 
19<#assign journalArticleId = .vars['reserved-article-id'].data> 
20<#assign item = journalLocalService.getArticle(groupId, journalArticleId, version)> 
21<#assign categoryList= assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", item.getResourcePrimKey()?number)> 
22 
23<#list categoryList as category> 
24    <#if ! category.isRootCategory() > 
25        <#assign categoryParent = category.getParentCategory() /> 
26        <#break> 
27    </#if> 
28</#list> 
29 
30<article class="news-detail" itemscope itemtype="https://schema.org/NewsArticle"> 
31    <header class="news-detail__header text-center"> 
32        <div class="d-flex flex-column container container-fluid-max-xl"> 
33            <div class="content-66"> 
34 
35                <#setting locale = 'de_De'> 
36                <#if .vars["reserved-article-display-date"]?exists> 
37                    <#assign displayDate = .vars["reserved-article-display-date"].data /> 
38                <#else> 
39                    <#assign displayDate = .vars["reserved-article-modified-date"].data /> 
40                </#if> 
41                <#assign displayDateOutput = displayDate?datetime(liferayDateFormat)?date/> 
42                <#assign displayGoogleDateTime = displayDate?datetime(liferayDateFormat)?string.iso/> 
43                <#assign displayGoogleDate = displayDate?datetime(liferayDateFormat)?string["yyyy-MM-dd"]/> 
44                <#setting locale=locale.toString()> 
45 
46                <div class="news-detail__meta displaydate overline" itemprop="datePublished" content="${displayGoogleDateTime}"> 
47                    <#if categoryParent?? >${categoryParent.getTitle(locale)} / </#if> 
48                    <time datetime="${displayGoogleDate}">${displayDateOutput}</time> 
49                </div> 
50 
51                <h1 class="news-detail__title h2" itemprop="headline">${.vars['reserved-article-title'].data}</h1> 
52 
53                <div class="news-detail__share"> 
54                    <p class="sr-only">Diesen Artikel teilen:</p> 
55                    <ul class="news-detail__share-list d-flex justify-content-center"> 
56                        <li class="news-detail__share-item"> 
57                            <a rel="nofollow" class="news-detail__share-link news-detail__share-link--facebook" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=${friendlyURL!""}"> 
58                                <svg class="news-detail__share-icon" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="44" height="44" viewBox="0 0 44 44"> 
59                                    <path d="M22 44C9.9 44 0 34.1 0 22S9.9 0 22 0s22 9.9 22 22-9.9 22-22 22zm0-42C11 2 2 11 2 22s9 20 20 20 20-9 20-20S33 2 22 2z"/> 
60                                    <path class="news-detail__share-icon--symbol" d="M23 32.8h-4c-.4 0-.8-.3-.8-.8v-7.2H16c-.4 0-.8-.3-.8-.8v-4c0-.4.3-.8.8-.8h2.2V17c0-1.5.6-3 1.7-4.1 1.1-1.1 2.5-1.7 4.1-1.7h3c.4 0 .8.3.8.8v4c0 .4-.3.8-.8.8h-3c-.1 0-.1 0-.2.1 0 0-.1.1-.1.2v2.2H27c.2 0 .4.1.6.3.1.2.2.4.1.6l-1 4c-.1.3-.4.6-.7.6h-2.2V32c0 .4-.4.8-.8.8zm-3.2-1.5h2.5V24c0-.4.3-.8.8-.8h2.4l.6-2.5h-3c-.4 0-.8-.3-.8-.8v-3c0-.5.2-.9.5-1.2.3-.3.8-.5 1.2-.5h2.2v-2.5H24c-1.1 0-2.2.4-3 1.2-.8.8-1.2 1.9-1.2 3v3c0 .4-.3.8-.8.8h-2.2v2.5H19c.4 0 .8.3.8.8v7.3z"/> 
61                                </svg> 
62                                <span class="sr-only">Per Facebook teilen</span> 
63                            </a> 
64                        </li> 
65                        <li class="news-detail__share-item"> 
66                            <a rel="nofollow" class="news-detail__share-link news-detail__share-link--linkedin" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=${friendlyURL!""}&title=${.vars['reserved-article-title'].data}"> 
67                                <svg class="news-detail__share-icon" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="44" height="44" viewBox="0 0 44 44"> 
68                                    <path d="M22 44C9.9 44 0 34.1 0 22S9.9 0 22 0s22 9.9 22 22-9.9 22-22 22zm0-42C11 2 2 11 2 22s9 20 20 20 20-9 20-20S33 2 22 2z"/> 
69                                    <path class="news-detail__share-icon--symbol" d="M31.2 32.8c-.9 0-1.6-.7-1.6-1.6v-6c0-1.1-.4-2-1.2-2.7-.7-.6-1.7-.9-2.8-.9-1.5 0-4 .8-4 3.6v6c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6V18.3c0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6v1.2c1.2-.7 2.6-1.1 4-1.1 3.5 0 7.1 2.3 7.1 6.7v6c.1 1-.6 1.7-1.5 1.7zM12.8 14.4c-.4 0-.7-.1-1-.4-.6-.6-.7-1.6-.1-2.2.6-.6 1.6-.7 2.2-.1.6.6.7 1.6.1 2.2-.3.3-.8.5-1.2.5zM14.4 31c0 .9-.7 1.6-1.6 1.6s-1.6-.7-1.6-1.6V18.1c0-.9.7-1.6 1.6-1.6s1.6.7 1.6 1.6V31z"/> 
70                                </svg> 
71                                <span class="sr-only">Per LinkedIn teilen</span> 
72                            </a> 
73                        </li> 
74                        <li class="news-detail__share-item"> 
75                            <a rel="nofollow" class="news-detail__share-link news-detail__share-link--xing" target="_blank" href="https://www.xing.com/spi/shares/new?url=${friendlyURL!""}"> 
76                                <svg class="news-detail__share-icon" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="44" height="44" viewBox="0 0 44 44"> 
77                                    <path d="M22 44C9.9 44 0 34.1 0 22S9.9 0 22 0s22 9.9 22 22-9.9 22-22 22zm0-42C11 2 2 11 2 22s9 20 20 20 20-9 20-20S33 2 22 2z"/> 
78                                    <path class="news-detail__share-icon--symbol" d="M16.3 26.4h-3.2c-.2 0-.3-.1-.4-.2-.1-.1-.1-.3 0-.5l3.4-5.9-2.2-3.8c-.1-.2-.1-.4 0-.5.1-.1.2-.2.4-.2h3.2c.5 0 .7.3.9.6l2.2 3.8c-.1.2-3.4 6.1-3.4 6.1-.2.3-.4.6-.9.6zm15-14.8-7 12.5 4.5 8.2c.1.2.1.4 0 .5-.1.2-.3.2-.4.2h-3.2c-.5 0-.7-.3-.9-.6l-4.5-8.3c.2-.4 7.1-12.5 7.1-12.5.2-.3.4-.6.9-.6H31c.2 0 .3.1.4.2 0 .1 0 .3-.1.4z"/> 
79                                </svg> 
80                                <span class="sr-only">Per Xing teilen</span> 
81                            </a> 
82                        </li> 
83                    </ul> 
84                </div> 
85 
86                <#if (titleimage.getData())?? && titleimage.getData() != "" && getterUtil.getBoolean(showImageOnWebsite.getData())> 
87                    <figure class="news-detail__title-image-wrapper" itemscope itemtype="https://schema.org/ImageObject"> 
88                        <img class="news-detail__title-image rounded" alt="${fileDataHelperUtil.getAltText(titleimage.getAttribute("fileEntryId")?number, locale)}" data-fileentryid="${titleimage.getAttribute("fileEntryId")}" src="${titleimage.getData()}" /> 
89                        <meta itemprop="url" content="${titleimage.getData()}" /> 
90 
91                        <#assign copyright = fileDataHelperUtil.getCreditText(titleimage.getAttribute("fileEntryId")?number, locale) /> 
92                        <#if copyright?? && copyright?has_content> 
93                            <figcaption class="news-detail__title-image-caption">${copyright}</figcaption> 
94                        </#if> 
95 
96                    </figure> 
97                </#if> 
98 
99            </div> 
100        </div> 
101    </header> 
102 
103    <section class="news-detail__body" itemprop="articleBody"> 
104        <div class="container container-fluid-max-xl"> 
105            <div class="content-66"> 
106 
107                <#if (teaserText.getData())?? && (teaserText.getData())?has_content> 
108                    <div class="news-detail__intro h5" itemprop="description"> 
109                        ${teaserText.getData()} 
110                    </div> 
111                </#if> 
112 
113                <#if Feldergruppen88124806.getSiblings()?has_content> 
114                    <#list Feldergruppen88124806.getSiblings() as contentBlock> 
115 
116                            <#if (contentBlock.richText.getData())?? && (contentBlock.richText.getData())?has_content> 
117                                <div class="news-detail__content-block text"> 
118                                    ${contentBlock.richText.getData()} 
119                                </div> 
120                            </#if> 
121 
122                            <#if (contentBlock.image.getData())?? && contentBlock.image.getData() != ""> 
123                                <figure class="news-detail__content-block news-detail__image"> 
124                                    <img alt="${fileDataHelperUtil.getAltText(contentBlock.image.getAttribute("fileEntryId")?number, locale)}" data-fileentryid="${contentBlock.image.getAttribute("fileEntryId")}" src="${contentBlock.image.getData()}" /> 
125 
126                                    <#assign copyright = fileDataHelperUtil.getCreditText(contentBlock.image.getAttribute("fileEntryId")?number, locale) /> 
127                                    <#if copyright?? && copyright?has_content> 
128                                        <figcaption class="copyright">${copyright}</figcaption> 
129                                    </#if> 
130 
131                                </figure> 
132                            </#if> 
133 
134                            <#if (contentBlock.quoteText.getData())?? && (contentBlock.quoteText.getData())?has_content> 
135 
136                                <div class="news-detail__content-block news-detail__quote"> 
137 
138                                    <#if (contentBlock.quoteImage.getData())?? && contentBlock.quoteImage.getData() != ""> 
139                                        <img class="news-detail__quote-image rounded-circle square" alt="${fileDataHelperUtil.getAltText(contentBlock.quoteImage.getAttribute("fileEntryId")?number, locale)}" data-fileentryid="${contentBlock.quoteImage.getAttribute("fileEntryId")}" src="${contentBlock.quoteImage.getData()}" /> 
140                                    <#else> 
141                                        <svg class="news-detail__quote-svg "width="61" height="51" viewBox="0 0 61 51" fill="none" xmlns="http://www.w3.org/2000/svg"> 
142                                            <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"/> 
143                                            <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"/> 
144                                        </svg> 
145                                    </#if> 
146 
147                                    <blockquote class="news-detail__quote-text"> 
148                                        ${contentBlock.quoteText.getData()} 
149                                    </blockquote> 
150                            </div> 
151                        </#if> 
152                    </#list> 
153                </#if> 
154 
155                <#if (video.getData())?? && (video.getData())?has_content> 
156                    <#assign document = saxReaderUtil.read(item.getContentByLocale(locale.toString())) /> 
157                    <#assign rootElement = document.getRootElement() /> 
158                    <#assign videoContent = (rootElement.selectSingleNode("dynamic-element[@field-reference='video']").getStringValue())!""/> 
159                    <#assign videoJson = jsonFactoryUtil.createJSONObject(videoContent) /> 
160 
161                    <figure class="news-detail__content-block news-detail__video-wrapper"> 
162 
163                    <#if (videoJson.extension)?? && (videoJson.extension)?has_content> 
164                        <video class="news-detail__video video" controls> 
165                            <source src="${video.getData()}"> 
166                            Your browser does not support the video tag. 
167                        </video> 
168                    <#else> 
169                        <div class="news-detail__video video video-external"> 
170                            ${videoJson.html} 
171                        </div> 
172                    </#if> 
173 
174                    </figure> 
175                </#if> 
176 
177            </div> 
178        </div> 
179    </section> 
180    <#if pressContact.getSiblings()?has_content> 
181    <footer class="news-detail__footer"> 
182        <#list pressContact.getSiblings() as cur_pressContact> 
183            <#if preeContactLimit gt 0> 
184                <#assign preeContactLimit = preeContactLimit -1/> 
185                <#assign pressContactData = jsonFactoryUtil.createJSONObject(cur_pressContact.getData())/> 
186                <#if cur_pressContact.getData()?has_content> 
187                    <#attempt> 
188						<#assign pressContactAsset = assetService.getEntry(cur_pressContact.getData()?eval.assetEntryId?number)> 
189 
190						<#assign image = assetHelperUtil.getValueFromContent(pressContactAsset, "image")> 
191                        <#if image?? && image.getString(locale)??> 
192                                <#assign imageJson = jsonFactoryUtil.createJSONObject(image.getString(locale))/> 
193                                <#assign imageUrl = "" /> 
194                                <#if imageJson.url?? && imageJson.url?has_content> 
195                                    <#assign imageUrl = imageJson.url /> 
196                                </#if> 
197                        </#if> 
198 
199						<#assign firstName = assetHelperUtil.getValueFromContent(pressContactAsset, "firstName")> 
200						<#assign lastName = assetHelperUtil.getValueFromContent(pressContactAsset, "lastName")> 
201						<#assign function = assetHelperUtil.getValueFromContent(pressContactAsset, "function")> 
202						<#assign phone = assetHelperUtil.getValueFromContent(pressContactAsset, "phone")> 
203						<#assign email = assetHelperUtil.getValueFromContent(pressContactAsset, "email")> 
204 
205                        <div class="container container-fluid-max-xl"> 
206                        <#if cur_pressContact.getData()??> 
207                            <div class="news-detail__press-contact press-contact text-center" itemscope itemprop="author" itemtype="https://schema.org/Person"> 
208                                <#if imageJson?? && imageJson?has_content && imageJson.fileEntryId??> 
209                                    <div class="press-contact__img-wrapper"> 
210                                        <img class="press-contact__img rounded-circle" alt="${fileDataHelperUtil.getAltText(imageJson.fileEntryId?number, locale)}" data-fileentryid="${imageJson.fileEntryId}" src="${imageUrl}" itemprop="image" /> 
211                                    </div> 
212                                    <meta itemprop="name" content="${firstName} ${lastName}"> 
213                                    <meta itemprop="url" content="${imageUrl}" /> 
214                                </#if> 
215                                <dl class="press-contact__name h5"> 
216                                    <dt class="sr-only">Name: </dt> 
217                                    <dd> 
218                                        <#if firstName?? && firstName.getString(locale)??> 
219                                            ${firstName.getString(locale)} 
220                                        </#if> 
221                                        <#if lastName?? && lastName.getString(locale)??> 
222                                            ${lastName.getString(locale)} 
223                                        </#if> 
224                                    </dd> 
225                                </dl> 
226                                <#if function?? && function.getString(locale)??> 
227                                    <dl class="press-contact__position"> 
228                                        <dt class="sr-only">Position: </dt> 
229                                        <dd>${function.getString(locale)}</dd> 
230                                    </dl> 
231                                </#if> 
232                                <#if phone?? && phone.getString(locale)??> 
233                                    <dl class="press-contact__phone"> 
234                                        <dt class="sr-only">Telephone: </dt> 
235                                        <dd>${phone.getString(locale)}</dd> 
236                                    </dl> 
237                                </#if> 
238                                <#if email?? && email.getString(locale)??> 
239                                    <dl class="press-contact__email"> 
240                                        <dt class="sr-only">Email: </dt> 
241                                        <dd><a href="mailto:${email.getString(locale)}">${email.getString(locale)}</a></dd> 
242                                    </dl> 
243                                </#if> 
244                            </div> 
245                        </#if> 
246                        </div> 
247                    <#recover> 
248						${.error} 
249                    </#attempt> 
250                </#if> 
251            </#if> 
252        </#list> 
253    </footer> 
254    </#if> 
255 
256</article>