The following has evaluated to null or missing: ==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 128, column 37] ---- 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: dMTJsonObject = FrontendService.media... [in template "252001#252047#252845" at line 128, column 21] ----
1<#-- used @ Veranstaltung-Detailseite Intro
2 used @ Publikation-Detailseite Intro
3-->
4
5<#--
6Web content templates to display teaser on thema detail page
7
8Generic template for detail pages Intro / Teaser element
9-->
10<#--
11Display the current page title
12-->
13<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
14<#include "${fullTemplatesPath}/macros/debugging.ftl" />
15
16<#include "${fullTemplatesPath}/macros/page-modules/PMIntro.ftl" />
17<#include "${fullTemplatesPath}/macros/atomic-modules/AMPublicationCarousel.ftl" />
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadata.ftl" />
19<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" />
20
21
22<#--
23 renders the Intro for nearly all Pages
24 TODO: remove Share? (was in the designs, but not anymore?)
25 TODO: check if languageSelect/filter are working (js)
26
27 - portletId
28 - data = {
29 "media": string (src from image),
30 "category": string,
31 "title": string,
32 "author": string,
33 "subheadline": string,
34 "copy": string,
35 "filter": {
36 "id": string,
37 "name": string,
38 "entries": Array<Object> ({key:value}),
39 },
40 "languageSelect": {
41 "id": string,
42 "name": string,
43 "entries": Array<Object> ({key:value}),
44 },
45 "meta": {
46 "pos"; string (top/bottom)
47 "date": string,
48 "hash": string,
49 "info": string, (url)
50 },
51 "share" : {
52 "login": string,
53 "print": string,
54 "mail": string,
55 "multishare": string?? (tbd)
56 }
57 - AMMetadata: macro
58 - position: String ("top") -> defines wether the meta-data should be rendered above or below the intro-content
59 }
60-->
61
62<#assign
63 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
64
65 ServiceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()
66 DLAPP = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")
67
68 themeDisplay = ServiceContext.getThemeDisplay()
69 editmode = FrontendService.user.isPrivilegedUser(themeDisplay)
70
71 languageId = themeDisplay.getLocale()
72 groupId = themeDisplay.getScopeGroupId()
73 currentUrl = themeDisplay.getURLCurrent()
74
75 layout = themeDisplay.getLayout()
76 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id")
77/>
78
79<#setting locale="${languageId}">
80
81<#-- get article from url -->
82
83<#assign entry = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! >
84
85
86<#if entry?has_content>
87
88 <#if entry.resourcePrimKey??>
89 <#assign primaryKey = entry.resourcePrimKey?number >
90 <#elseif entry.classPK??>
91 <#assign primaryKey = entry.classPK?number >
92 </#if>
93
94 <#assign
95 jsonString = FrontendService.article.getWebcontent(primaryKey)
96 json = FrontendService.json.parseAsJson(jsonString)
97 availablelanguages = FrontendService.article.getAssetEntryToUrl(primaryKey).getAvailableLanguageIds()
98
99 title = entry.getTitle(languageId)
100 data = {
101 "title": title
102 }
103 />
104 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" />
105
106 <#if hasContent('untertitel', languageId, json)>
107 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } >
108 </#if>
109
110 <#if hasContent('beschreibung', languageId, json)>
111 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } >
112 </#if>
113
114 <#-- fill meta data -->
115 <#assign meta = {} />
116
117 <#-- PUBLIKATIONEN DETAIL -->
118 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")>
119
120 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)>
121 <#assign
122 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first")
123 />
124
125 <#if coverBildString?has_content>
126 <#assign
127 coverBild = FrontendService.json.parseAsJson(coverBildString)
128 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale )
129 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid )
130 data = data + { "media": linkToDMT, "meta" : dMTJsonObject }
131 />
132 <#if dMTJsonObject.altText?? >
133 <#assign data = data + {"alt" : dMTJsonObject.altText} />
134 </#if>
135 <#if dMTJsonObject.quelle??>
136 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } />
137 </#if>
138 </#if>
139 <#-- uncomment to display pdf cover as Intro Image
140 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)>
141 <#assign
142 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first")
143 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/>
144 <#if fileEntry?has_content>
145 <#assign
146 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay)
147 data = data + { "media": linkToThumbnail }
148 />
149 </#if>
150 -->
151 </#if>
152
153 <#assign
154 meta = meta + { "orderInfo": "true" }
155 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!""
156 />
157
158
159
160 <#if hasContent('erscheinungsdatum', languageId, json)>
161 <#assign
162 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first")
163 />
164 <#if erscheinungsdatum?has_content >
165 <#assign
166 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId )
167 meta = meta + { "date": erscheinungsdatumFormatted }
168 />
169 </#if>
170 </#if>
171
172 <#if verbundJournalArticle?has_content>
173 <#assign
174 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey)
175 verbundJson = FrontendService.json.parseAsJson(verbundJsonString)
176 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first")
177 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first")
178 />
179 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" />
180 <#assign meta = meta + { "laufendenummer": laufendenummer } >
181
182 <#if coverImg?has_content && coverImg.url?has_content >
183 <#assign meta = meta + { "coverImg": coverImg.url } >
184 </#if>
185 </#if>
186
187
188 <#if meta?has_content>
189 <#assign data = data + {"meta": meta } >
190 </#if>
191
192 </#if>
193 <#-- PUBLIKATIONEN DETAIL END -->
194
195
196 <#-- VERANSTALTUNGEN DETAIL -->
197 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
198 <#assign
199 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!""
200 links = []
201 />
202 <#if availablelanguages?has_content && friendlyUrl?has_content>
203 <#if (availablelanguages?size > 1) >
204 <#list availablelanguages as language>
205 <#assign
206 defaultLanguage = "de_DE"
207 defaultLocale = FrontendService.language.getLocaleByKey(defaultLanguage)
208 linkLocale = (FrontendService.language.getLocaleByKey(language))!defaultLocale
209 langFriendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, linkLocale, groupId)
210
211 link = {
212 "key": language!defaultLanguage,
213 "value": linkLocale.getDisplayLanguage(languageId),
214 "url": "/c/portal/update_language?p_l_id=" +
215 layout.plid + "&redirect=" + langFriendlyUrl +
216 "&languageId=" + language
217 }
218 />
219 <#if language == languageId>
220 <#assign link = link + { "selected": "true" } >
221 </#if>
222 <#assign links = links + [link]>
223 </#list>
224 <#assign
225 data = data + {
226 "languageSelect": {
227 "id": "languageSelectRedirect",
228 "name": "languageselectRedirect",
229 "entries": links,
230 "label": languageUtil.get(languageId, "diese.veranstaltung.ist.in.weiteren.sprachen.verfuegbar")
231 }
232 }
233 />
234 </#if>
235 </#if>
236 </#if>
237
238 <#if hasContent('erscheinungsdatum', languageId, json)>
239 <#assign
240 startdate = getValueForLanguage('erscheinungsdatum', languageId, json, "first")
241 meta = meta + { "start": startdate?date.iso, "end": "" }
242 />
243 </#if>
244
245 <#if hasContent('startdatum', languageId, json)>
246 <#assign
247 startdate = getValueForLanguage('startdatum', languageId, json, "first")
248 meta = meta + { "start": startdate?date.iso, "end": "" }
249 />
250 </#if>
251
252 <#if hasValue('einfuehrungText', locale, json)>
253 <#assign data = data + { "einfuehrungText" : getValueForLanguage('einfuehrungText', locale, json, "first") } >
254 <#elseif hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first")>
255 <#assign data = data + { "einfuehrungText" : getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first") } >
256 </#if>
257
258 <#if hasContent('endedatum', languageId, json)>
259 <#assign
260 enddate = getValueForLanguage('endedatum', languageId, json, "first")
261 meta = meta + { "end": enddate?date.iso }
262 />
263 </#if>
264
265 <#if hasContent('startzeit', languageId, json)>
266 <#assign
267 startzeit = getValueForLanguage('startzeit', languageId, json, "first")
268 />
269 <#if startzeit?has_content >
270 <#assign meta = meta + { "startzeit": startzeit } />
271 </#if>
272 </#if>
273
274 <#if hasContent('endezeit', languageId, json)>
275 <#assign
276 endezeit = getValueForLanguage('endezeit', languageId, json, "first")
277 meta = meta + { "endezeit": endezeit }
278 />
279 </#if>
280
281 <#if hasContent('ortWCSKASDEORT', languageId, json)>
282 <#assign
283 ortWCSKASDEORT = FrontendService.json.parseAsJson(getValueForLanguage('ortWCSKASDEORT', languageId, json, "first"))
284 ortWCSKASDEORTPrimaryKey = ortWCSKASDEORT.classPK?number
285 ortWCSKASDEORTWebContent = FrontendService.article.getWebcontentByPk(ortWCSKASDEORTPrimaryKey)!""
286 />
287 <#if ortWCSKASDEORTWebContent?has_content >
288 <#assign
289 ortWCSKASDEORTTitle = ortWCSKASDEORTWebContent.getTitle(languageId)!""
290 />
291 <#if ortWCSKASDEORTTitle?has_content >
292 <#assign
293 meta = meta + { "ortWCSKASDEORT": ortWCSKASDEORTTitle }
294 />
295 </#if>
296 </#if>
297 </#if>
298
299
300 <#if hasContent('veranstaltungsnummer', languageId, json)>
301 <#assign
302 verauuid = getValueForLanguage('veranstaltungsnummer', languageId, json, "first")
303 meta = meta + { "verauuid": verauuid }
304 />
305 </#if>
306
307
308 <#if (data.meta)?has_content >
309 <#assign meta = data.meta />
310 </#if>
311
312 <#if !(data.media)?has_content && hasContent('mediumDMTKASDEMEDIUM', languageId, json)>
313 <#assign
314 medium = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, json, "first")
315 mediaData = getRelatedMediaObject(medium, themeDisplay, languageId, FrontendService, "hd-resolution")
316 />
317 <#assign data = data + { "media": mediaData.url , "meta" : mediaData.meta} >
318
319
320 <#if mediaData.meta?? && mediaData.meta.quelle??>
321 <#assign meta = meta + data.meta + { "quelle": mediaData.meta.quelle } />
322 </#if>
323 </#if>
324
325
326 <#if meta?has_content>
327 <#assign data = data + {"meta": meta } >
328 </#if>
329
330 <#-- END fill meta data -->
331
332 <#if hasContentForSequence('autorenWCSKASDEPERSON', languageId, json)>
333 <#assign
334 journalArticles = getValueForLanguageAnsprechpartner('autorenWCSKASDEPERSON', languageId, json)
335 authors = []
336 />
337 <#list journalArticles as articleString>
338 <#assign article = FrontendService.json.parseAsJson(articleString) />
339 <#if article?has_content && article?is_hash && article.classPK??>
340 <#assign articleDereferenced = FrontendService.person.resolveContactInstanceToPerson(article, languageId)!"" />
341 <#if articleDereferenced?has_content >
342 <#assign
343 author = ""
344 articlePrimaryKey = articleDereferenced.classPK?number
345 articleJsonString = FrontendService.article.getWebcontent(articlePrimaryKey)
346 articleJson = FrontendService.json.parseAsJson(articleJsonString)
347 />
348 <@debugJsonString articleJsonString "ADT_KASDE_DYNAMIC_INTRO-autorenWCSKASDEPERSON" />
349 <#if hasValue('anredetitel', languageId, articleJson)>
350 <#assign author = author + getValueForLanguage('anredetitel', languageId, articleJson, " ") + " ">
351 </#if>
352 <#if hasValue('vorname', languageId, articleJson)>
353 <#assign author = author + getValueForLanguage('vorname', languageId, articleJson, " ") + " ">
354 </#if>
355 <#if hasValue('nachname', languageId, articleJson)>
356 <#assign author = author + getValueForLanguage('nachname', languageId, articleJson, " ") + " ">
357 </#if>
358
359 <#attempt>
360 <#assign href = FrontendService.article.getFriendlyUrl(articlePrimaryKey, languageId, groupId)!"#" >
361 <#recover>
362 <#assign href = "#" >
363 </#attempt>
364 <#if href?has_content && href != "#" && href != "/_404">
365 <#assign author = '<a href="' + href + '">' + author?trim + '</a>'>
366 </#if>
367
368 <#assign authors = authors + [author?trim]>
369 </#if>
370 </#if>
371 </#list>
372 <#if authors?has_content>
373 <#assign data = data + { "author": authors?join(", ") } >
374 </#if>
375 </#if>
376
377 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL") >
378 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "VERANSTALTUNGSTYP")! >
379 <#if categories?has_content && categories[0]?has_content >
380 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
381 </#if>
382
383 <#if hasContent('ausgebucht', languageId, json)>
384 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', languageId, json, "first") }>
385 </#if>
386
387 <#if hasContent('storniert', languageId, json)>
388 <#assign data = data + { "storniert" : getValueForLanguage('storniert', languageId, json, "first") }>
389 </#if>
390
391 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL") >
392 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "PUBLIKATIONSREIHE")! >
393 <#if categories?has_content && categories[0]?has_content >
394 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
395 </#if>
396 <#else>
397 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "THEMA")! >
398 <#if categories?has_content && categories[0]?has_content >
399 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
400 </#if>
401 </#if>
402
403
404 <#assign
405 languages = []
406 />
407
408 <#attempt>
409 <#if json["document_pdfDMTBASICDOCUMENT"]?? >
410 <#if availablelanguages?has_content>
411 <#list availablelanguages as pdf_language>
412 <#assign
413 docRefJson = getValueForLanguage('document_pdfDMTBASICDOCUMENT', pdf_language, json, "first")
414 docRef = FrontendService.json.parseAsJson(docRefJson)
415 />
416 <#if docRef?is_hash && pdf_language != languageId >
417 <#assign
418 lang = FrontendService.language.getLocaleByKey(pdf_language)!""
419 docGroupId = docRef["groupId"]?number
420 docUuid = docRef["uuid"]
421 dMTJsonObject = FrontendService.media.getDMTJsonObject( docGroupId, docUuid, locale )
422 dMTLink = FrontendService.media.getLinkToDMT( dMTJsonObject )
423 />
424 <#if lang?has_content>
425 <#assign
426 languages = languages + [
427 {
428 "key": pdf_language,
429 "value": FrontendService.language.getLocaleByKey(pdf_language).getDisplayLanguage(),
430 "url": dMTLink
431 }]
432 />
433 </#if>
434 </#if>
435 </#list>
436 </#if>
437 </#if>
438 <#recover>
439 </#attempt>
440
441 <#if (languages?size > 0)>
442 <#attempt>
443 <#assign
444 data = data + { "languageSelect": {
445 "id": "languageSelect",
446 "name": "languageselect",
447 "entries": languages,
448 "documents": "",
449 "button": "true"
450 }}
451 />
452 <#recover>
453 </#attempt>
454 </#if>
455
456 <@PMIntro "ADT_KASDE_DYNAMIC_INTRO" data AMMetadata AMDatetime "bottom" />
457 ${FrontendService.article.getEditArticleHtml(primaryKey, themeDisplay)}
458
459 <#if data.meta?has_content>
460 <#if data.meta.laufendenummer?has_content !isACColorScheme() && !isVLCColorScheme() && !isDPMColorScheme()>
461 <div>
462 <div id="publicationVerbundPagination">
463 <@AMPublicationCarousel data.meta.laufendenummer data.meta.date data.meta.coverImg />
464 </div>
465 </div>
466 </#if>
467 </#if>
468
469<#elseif (editmode?? && editmode)>
470 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl />
471</#if>
In Israel hat es vier Terroranschläge innerhalb von zwei Wochen gegeben. Wie groß ist die Sorge, dass sich diese Serie fortsetzt?
Philipp Burkhardt: Innerhalb von 15 Tagen sind bei Terroranschlägen in Be’er Sheva, Chadera, Bnei Brak und Tel Aviv insgesamt 14 Menschen ermordet worden. Die Sicherheitslage in Israel ist nach diesen Anschlägen angespannt. Mehrere Umstände tragen zu dieser Anspannung bei: Erstens fallen der muslimische Fastenmonat Ramadan, das jüdische Pessachfest und Ostern zusammen. Während des Ramadan hat es in den letzten Jahren insbesondere in Jerusalem immer wieder Spannungen gegeben, die im vergangenen Jahr in die Gaza-Eskalation vom Mai mündeten. Der Pilger- und Touristenandrang, der durch die Überschneidung der bedeutenden Daten der drei Weltreligionen verursacht wird, sorgt für hohe Besucherzahlen in der Altstadt, die dadurch zum Ziel öffentlichkeitswirksamer Anschläge werden könnte. Zweitens trägt der sich nahende „Jahrestag“ der letzten Gaza-Eskalation zur angespannten Sicherheitslage bei, sodass israelische Sicherheitsexperten befürchten, dies könne als Anlass weiterer Anschläge dienen. Drittens befindet sich Israel in einer Regierungskrise, seitdem Premier Naftali Bennett seine dünne Mehrheit von nur einer Stimme in der Knesset verloren hat, nachdem mit Idit Silman der „Whip“ der Regierungskoalition die Regierung nicht mehr unterstützt.
Dennoch ist eine paradoxe Gleichzeitigkeit von Ruhe und Anspannung zu beobachten. Die israelischen Behörden haben sich intensiv auf die Situation in Jerusalem vorbereitet und sich auch unter anderem mit Jordanien, das den Status des Hüters der Heiligen Stätten in der Altstadt innehat, intensiv abgestimmt. Die Regierung Bennett-Lapid wählte auch einen anderen Ansatz im Umgang mit dem Terror als die Regierung Netanjahu im vergangenen Jahr. Während Benjamin Netanjahu auf Einschränkungen und harte Sicherheitspräsenz setzte, versucht die jetzige Regierung, die Situation durch vereinfachten Zugang zum Tempelberg für Muslime zu entspannen. Deswegen ist die Situation in Jerusalem relativ ruhig, wenngleich die Anspannung im ganzen Land zu spüren ist.
Dass die Serie sich fortsetzt ist nicht auszuschließen. Man darf dabei aus deutscher Perspektive nicht außer Acht lassen, dass Terroranschläge und Attacken leider sehr häufig vorkommen. Dem Anschlag auf der Dizengoff-Straße im Herzen von Tel Aviv wird jedoch auch eine hohe symbolische Bedeutung beigemessen, die greifbare Verunsicherung verursacht hat. Vielen Israelis wurde eine konfliktimmanente Verwundbarkeit bewusst, die durch Schüsse und Todesopfer auf einer beliebten Ausgeh- und Flaniermeile hervorgerufen wurde.
Was weiß man über die Hintergründe der Täter? Droht eine weitere Intifada, wie manche befürchten?
Philipp Burkhardt: Die Gefährlichkeit der Situation ergibt sich unter anderem aus der Tatsache, dass nach aktuellem Ermittlungsstand keine Netzwerke oder Organisationen hinter den Anschlägen nachzuweisen sind. Zwei der Attentäter galten als Sympathisanten des „Islamischen Staats“ (IS), wobei eine organisatorische Verwicklung dieser Terrororganisation in die Anschläge unwahrscheinlich ist. Seit langem ist unter Sicherheitsexperten das „Lone-Wolf-Phänomen“ bekannt. Einzeltäter begehen hier ohne herausfordernden Organisationsaufwand „niedrigschwellige“ Attentate, wie beispielsweise der Anschlag mit einem Messer in Be’er Sheva, der die Serie von Anschlägen eröffnete. Andere Attentäter standen in Verbindung mit dem Palästinensischen Islamischen Dschihad und stammten aus dem im Westjordanland befindlichen Flüchtlingslager in Jenin. Die Palästinensische Autonomiebehörde kann in den Flüchtlingslagern ihre Autorität nicht durchsetzen, was die Verbreitung extremistischer Ideologien begünstigt. Gleichzeitig haben vergangene israelische Regierungen die Benachteiligung von Arabern mit israelischer Staatsangehörigkeit vernachlässigt, sodass auch in dieser Gesellschaftsgruppe extremistisches Gedankengut, das Gewalt befürwortet, Fuß fassen konnte. Zu befürchten ist also, dass die jüngsten Anschläge Symptome eines Phänomens sind, das sich sowohl auf das Westjordanland als auch auf Israel erstreckt.
Parallelen zur Ersten Intifada von 1987 bis 1993 oder zur Zweiten Intifada von 2000 bis 2005 zeichnen sich derzeit nicht ab, weil zahlreiche Rahmenbedingungen anders sind. Beispielsweise scheint sich selbst die Hamas im Zusammenhang mit den Attacken um Ruhe im Gazastreifen zu bemühen. Die weiteren Entwicklungen bleiben allerdings abzuwarten - nicht zuletzt, weil häufig auch vermeintlich unbedeutende Ereignisse dazu beitragen können, dass Eskalationen nicht mehr auszuschließen sind.
Kürzlich waren die Außenminister von vier arabischen Ländern in Israel zu Gast. Manche Beobachter sehen die Terroranschläge auch als Versuch, eine Annäherung Israels mit arabischen Ländern zu stören. Wie schätzen Sie das ein?
Dr. Beatrice Gorawantschy: Mit dem Negev-Gipfel Ende März, bei dem die Außenminister der USA, von Bahrein, Ägypten, Marokko und der Vereinigten Arabischen Emirate (VAE) in Israel zusammengekommen sind, dem zudem ein Gipfeltreffen im ägyptischen Sharm-Al-Sheikh zwischen Premierminister Naftali Bennett mit den Amtskollegen aus den VAE und Ägypten vorausgegangen war, wurde nicht nur der vorläufige Höhepunkt der Gipfeldiplomatie im Nahen Osten, sondern auch einer der Höhepunkte israelischer Außenpolitik erreicht. Auf der Grundlage der Abraham-Abkommen vom September 2020, der Normalisierungsbemühungen Israels gegenüber ausgewählten arabischen Staaten, hatte sich in den letzten eineinhalb Jahren eine Dynamik in der Region entwickelt, die den Grundstein für eine neue regionale Sicherheitsarchitektur gelegt hat. Das Treffen der Außenminister wurde durch den Terroranschlag in der israelischen Stadt Hadera, der sich zeitgleich ereignete, überschattet. Auch wenn damit der Gipfel medial in den Hintergrund gedrängt wurde, konnte der Anschlag die historischen Errungenschaften nicht mindern - es handelte sich um die bisher stärkste Bekräftigung der Abraham-Abkommen durch die Biden-Regierung und war ein offenkundiger Versuch, den regionalen Verbündeten die amerikanische Unterstützung zu versichern. Gleichermaßen ist es allen Beteiligten gelungen, Geschlossenheit gegenüber gemeinsamen Herausforderungen - allen voran die Bedrohung durch den Iran - zu demonstrieren. Gleichzeitig konnte insbesondere Israel seine veränderte Rolle in der Region verdeutlichen.
Selbst wenn die Terroranschläge das Gipfeltreffen stören und die arabischen Teilnehmer abschrecken sollten, ist das Gegenteil eingetreten: Alleine die Tatsache, dass die Anschläge von zahlreichen arabischen Staaten wie auch von der Türkei verurteilt wurden, ist der Nachweis für Israels neue Rolle in der Region und demonstriert die Authentizität der Annäherung und der Beginn eines neuen israelisch-arabischen Narrativs: "We have no intention of letting them (the terrorists) dictate our lives...Together with our closest friend, the United States, we are today opening a door before all the peoples of the region, including the Palestinians, and offering them to replace the way of terror and destruction with a shared future of progress and success", so der israelische Außenminister; und der marokkanische Außenminister Nasser Bourita würdigte das Gipfeltreffen per se als angemessene Antwort auf den Terroranschlag.
Die israelische Opposition wirft der Regierung von Premier Naftali Bennett vor, nicht entschieden genug gegen den Terror vorzugehen. Welchen Rückhalt hat sein Bündnis noch - auch vor dem Hintergrund der schon angesprochenen aktuellen Regierungskrise?
Dr. Beatrice Gorawantschy: Es ist nicht nur die Opposition, die der Regierung Bennet vorwirft, nicht entschieden genug gegen den Terror vorzugehen; die Kritik kommt auch aus den eigenen Reihen, wobei mit Bezug auf die Terroranschläge im Vordergrund der Kritik in den Medien mehr noch das Versagen der Geheimdienste und der Polizei steht. Aber die aktuelle Regierungskrise ist nicht notwendigerweise auf den Umgang der Regierung mit Terror zurückzuführen, sondern legt vielmehr das Dilemma der Koalitionsregierung offen. In Israel ist vor knapp zehn Monaten eine Regierung mit denkbar knapper Mehrheit an die Macht gekommen, der Skeptiker keine lange Lebensdauer vorausgesagt haben - eine Acht-Parteien-Koalition unterschiedlicher politischer Couleur, inklusive einer arabischen Partei, deren einendes Element zunächst das Bestreben war, Langzeitpremier Benjamin Netanjahu (dauerhaft) aus dem Amt zu drängen. Diese ungewöhnliche Regierungskoalition musste die zurückliegenden Monate die unterschiedlichsten politischen Strömungen vereinigen, Ideologien blieben dabei auf der Strecke, Kompromisse sind an der Tagesordnung - dies ist bisher gelungen, was auf die pragmatische Haltung einzelner Parteiführer, aber auch auf den Balanceakt der politischen Doppelspitze Bennett/Lapid zurückzuführen ist.
Dennoch war es nur eine Frage der Zeit, wann Gruppierungen oder einzelne Abgeordnete in ideologischen Fragen aus der Koalition ausbrechen würden. Aktuell hängt die Regierung nur noch an einem seidenen Faden. Möglichweise können die terroristische Bedrohung und das Zündeln der Opposition den schwindenden Rückhalt in den eigenen Reihen aufhalten und einend wirken. Aktuell sind alle Parteien der Koalitionsregierung um Schadensbegrenzung bemüht und mahnen zur Einheit der Koalition; denn letztlich geht es für viele um das politische Überleben.
Das israelische Parlament ist bis zum 8. Mai in Sitzungspause - das ist die theoretische Karenzzeit, die der Regierung Bennet eingeräumt wird, um nicht nur Ordnung in den eigenen Reihen zu schaffen, sondern sich auch als starke Kraft in den Antiterror-Maßnahmen zu präsentieren, das heißt einen Balanceakt der bisherigen Bemühungen, Spannungen zu deeskalieren, unter gleichzeitigem Ausbau von Maßnahmen, um die „Sicherheit auf der Straße“ zu erhöhen. Aktuelle Umfragen lassen nicht vermuten, dass sich bei Wahlen die Mehrheitsverhältnisse stark verändern würden, eine politische Paralyse-Situation wie in den beiden letzten Netanjahu-Wahlmarathon-Jahren wäre vorprogrammiert. Doch eine stabile Regierung ist das, was Israel gerade jetzt - vor dem Hintergrund der jüngsten terroristischen Anschläge - besonders nötig hat.