Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 127, 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 127, 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 
98 title = entry.getTitle(languageId) 
99 data = { 
100 "title": title 
101
102 /> 
103 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" /> 
104 
105 <#if hasContent('untertitel', languageId, json)> 
106 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } > 
107 </#if> 
108 
109 <#if hasContent('beschreibung', languageId, json)> 
110 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } > 
111 </#if> 
112 
113 <#-- fill meta data --> 
114 <#assign meta = {} /> 
115 
116 <#-- PUBLIKATIONEN DETAIL --> 
117 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")> 
118 
119 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)> 
120 <#assign 
121 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first") 
122 /> 
123 
124 <#if coverBildString?has_content> 
125 <#assign 
126 coverBild = FrontendService.json.parseAsJson(coverBildString) 
127 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) 
128 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid ) 
129 data = data + { "media": linkToDMT, "meta" : dMTJsonObject } 
130 /> 
131 <#if dMTJsonObject.altText?? > 
132 <#assign data = data + {"alt" : dMTJsonObject.altText} /> 
133 </#if> 
134 <#if dMTJsonObject.quelle??> 
135 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } /> 
136 </#if> 
137 </#if> 
138 <#-- uncomment to display pdf cover as Intro Image 
139 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)> 
140 <#assign 
141 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first") 
142 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/> 
143 <#if fileEntry?has_content> 
144 <#assign 
145 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay) 
146 data = data + { "media": linkToThumbnail } 
147 /> 
148 </#if> 
149 --> 
150 </#if> 
151 
152 <#assign 
153 meta = meta + { "orderInfo": "true" } 
154 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!"" 
155 /> 
156 
157 
158 
159 <#if hasContent('erscheinungsdatum', languageId, json)> 
160 <#assign 
161 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
162 /> 
163 <#if erscheinungsdatum?has_content > 
164 <#assign 
165 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId ) 
166 meta = meta + { "date": erscheinungsdatumFormatted } 
167 /> 
168 </#if> 
169 </#if> 
170 
171 <#if verbundJournalArticle?has_content> 
172 <#assign 
173 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey) 
174 verbundJson = FrontendService.json.parseAsJson(verbundJsonString) 
175 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first") 
176 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first") 
177 /> 
178 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" /> 
179 <#assign meta = meta + { "laufendenummer": laufendenummer } > 
180 
181 <#if coverImg?has_content && coverImg.url?has_content > 
182 <#assign meta = meta + { "coverImg": coverImg.url } > 
183 </#if> 
184 </#if> 
185 
186 
187 <#if meta?has_content> 
188 <#assign data = data + {"meta": meta } > 
189 </#if> 
190 
191 </#if> 
192 <#-- PUBLIKATIONEN DETAIL END --> 
193 
194 
195 <#-- VERANSTALTUNGEN DETAIL --> 
196 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")> 
197 <#assign 
198 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!"" 
199 languages = entry.getAvailableLanguageIds() 
200 links = [] 
201 /> 
202 <#if languages?has_content && friendlyUrl?has_content> 
203 <#if (languages?size > 1) > 
204 <#list languages 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 <#list json["document_pdfDMTBASICDOCUMENT"]?keys as pdf_language> 
411 <#if pdf_language?has_content > 
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 </#if> 
436 </#list> 
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> 

Asset Publisher

Ärger um die Unabhängigkeit der Justiz

Das Urteil des Verfassungsgerichts (K 3/21) betraf einen Antrag von Premierminister Mateusz Morawiecki im Anschluss an ein Urteil des Europäischen Gerichtshofs vom 2. März 2021 (C-824/18). Das Urteil betraf die Möglichkeit der Gerichte, die Richtigkeit des Ernennungsverfahrens eines Richters zu überprüfen. Dies war einer von vielen Streitpunkten im Zusammenhang mit der Reform der polnischen Justiz, die von der national-konservativen Partei Recht und Gerechtigkeit (PiS) mit ihren Koalitionspartnern seit 2015 sukzessive durchgeführt wird. Der EuGH hatte Einwände gegen die Neuordnung der Richterwahl bei der Besetzung des Nationalen Justizrates, da er das Verfahren für politisch motiviert hielt. Der Nationale Justizrat soll eigentlich die Unabhängigkeit der Justiz in Polen schützen. Bisher war der Rat eine Art richterliche Selbstverwaltung. Die Richter wählten, welche Kollegen sie dort vertreten sollten. Nach der PiS-Reform hat das Parlament größeren Einfluss auf die Richterwahl gewonnen. Der Justizrat stellt dem Staatspräsidenten u.a. Kandidaten zur Ernennung von Richtern, auch des Obersten Gerichtshofs vor. Der EuGH entschied damals, dass der Nationale Justizrat in seiner jetzigen Form keine Gewähr für eine unparteiische Auswahl von Richterkandidaten bietet. Darüber hinaus wies er darauf hin, dass sich die nationalen Gerichte in dem beim EuGH anhängigen Verfahren von den europäischen Vorschriften leiten lassen sollten, unabhängig von den nationalen Gesetzen oder deren verfassungsrechtlichem Charakter. Konkret befürchteten die EU-Richter, dass das Verfahren zur Besetzung des Obersten Gerichts in Polen gegen EU-Recht verstoßen könnte. Dies hätte zur Folge, dass der EuGH Polen zwingen könnte, Teile der umstrittenen Reform aufzuheben.

Chronik eines Streits

Der Streit zwischen dem Gericht in Luxemburg und dem polnischen Verfassungsgericht über die Unabhängigkeit der Justiz in Polen ist seit 2019 im Gange. Bereits im November 2019 (C-585/18 und C-624/18 und C-625/18) entschied der EuGH über die Besetzung des Obersten Gerichtshofs und des Obersten Verwaltungsgerichts und verpflichtete polnische Gerichte dazu, die umstrittene Bestimmung des nationalen Rechts unangewendet zu lassen.

Im April 2020 erließ der EuGH eine Übergangsmaßnahme zur Aussetzung der Tätigkeit der Disziplinarkammer des Obersten Gerichts, da ansonsten die Unabhängigkeit und Unparteilichkeit der Kammer nicht gewährleistet sei. Dies wiederholte das EuGH im Urteil dazu am 15. Juli 2021 (C‑791/19).

Ein Tag zuvor, am 14. Juli (P 7/20), erklärte jedoch Polens Verfassungsgericht alle einstweiligen Anordnungen des EuGHs für verfassungswidrig, Polen solle ihnen daher nicht Folge leisten.

Dies alles führte zu einer kuriosen Situation, in der manche Richter sich nach den Anordnungen des EuGH richteten, andere wiederrum die von dem EuGH in Zweifel gezogene Gesetze respektieren und sich an die Rechtsprechung des polnischen Verfassungsgerichtes hielten.

Der Premierminister drang auf eine umfassende Lösung der Frage, ob die polnische Verfassung Vorrang gegenüber dem Unionsrecht hat und beantragte beim Verfassungsgericht die Prüfung der Verfassungsmäßigkeit einiger Bestimmungen des EU-Vertrags.

Die Beschwerde Morawieckis

Im Wesentlichen handelte es sich um eine Beschwerde gegen die Auslegung des europäischen Rechts durch den EGH. Der Premierminister stellte drei Bestimmungen des EU-Vertrags in Frage, die von dem EuGH im oben genannten Urteil ausgelegt worden sind. Auf diese Auslegung hätten die Mitgliedstaaten, darunter auch Polen, keinen wesentlichen Einfluss. Er bezog sich dabei insbesondere auf Artikel 19 des EU-Vertrags: „Die Mitgliedstaaten schaffen die erforderlichen Rechtsbehelfe, damit ein wirksamer Rechtsschutz in den vom Unionsrecht erfassten Bereichen gewährleistet ist“.

Die Artikel, deren Überprüfung der Premierminister in der angefochtenen Interpretation forderte, ermächtigen oder verpflichten seiner Meinung nach polnische Behörden (also auch Gerichte), von der Anwendung der polnischen Verfassung abzuweichen, oder verpflichten sie, Rechtsvorschriften in einer Weise anzuwenden, die mit der Verfassung nicht vereinbar sind. Wie in der Klageschrift hervorgehoben wird, wirft ein solches Verständnis des EU-Vertrags „weitreichende und berechtigte verfassungsrechtliche Zweifel auf, die keine Bestätigung im Text der Verträge finden“. Hierbei ging es um Bestätigung der bisherigen Rechtsprechung des polnischen Verfassungstribunals.

Nach Ansicht des polnischen Premierministers hat der EU-Gerichtshof mit diesem Urteil seine Kompetenzen überschritten. Die Frage des Ministerpräsidenten lautete daher, ob die endgültige Entscheidung über die Umsetzung des EuGH-Urteils in polnisches Recht beim nationalen Verfassungsgerichtshof liegt.

Ein Urteil im Sinne der PiS

Am 7. Oktober geschah das, was wohl jeder (insbesondere auch die Regierungspartei PiS) erwartet hatte. Nach wiederholten Verschiebungen von Sitzungen gab das Gericht unter dem Vorsitz von Julia Przyłębska, privat eine Freundin des PiS-Vorsitzenden Jarosław Kaczyński, dem Ersuch des Premierministers statt. Im Urteil wurde festgestellt, dass die Bestimmungen des EU-Vertrags, auf deren Grundlage der EuGH über die polnische Justiz urteilte, gegen die polnische Verfassung verstoßen.

Um es einfach auszudrücken: Das Verfassungsgericht stellte somit fest, dass der Versuch des Europäischen Gerichtshofs, sich in das polnische Justizwesen einzumischen, gegen die Regel des Vorrangs der polnischen Verfassung und damit gegen die Souveränität Polens verstoße.

Geteilte Reaktionen: Kommt jetzt der Polexit?

Die Reaktionen auf das Urteil des Verfassungsgerichts waren zweigeteilt. Politiker aus dem Regierungslager sind mit dem Urteil zufrieden. Am Tag der Urteilsverkündung sagte Jarosław Kaczynski:

 „Wenn sich herausstellt, dass das durch ganz unterschiedliche Verfahren geschaffene Recht, und ich spreche hier vom Sekundärrecht der Europäischen Union, alles ändern kann, was es will, einschließlich der polnischen Verfassung, dann würde das bedeuten, dass die Demokratie nur eine reine Täuschung ist, eine reine Fiktion, dass wir es nur mit einer Art Ritual zu tun haben“.

Kaczyński ist der Ansicht, dass Fragen, die das nationale Rechtssystem betreffen, nicht in die Zuständigkeit der EU fallen, während in Polen die Verfassung als Grundgesetz und wichtigste Rechtsquelle gilt. „Das Gegenteil würde bedeuten, …, dass es in Polen keine Demokratie gibt, weil es keine Bürger gibt. Bürger existieren, wenn sie ein Volk, einen Demos, bilden, daher die Demokratie. Das Volk, die Nation, die entscheidet, wer regiert und wie“ – erklärte der PiS-Vorsitzende.

Die Opposition hingegen machte aus ihrer Empörung keinen Hehl.

„Eine solche Entscheidung des Gerichts, die ohne Dialog mit dem EuGH getroffen wurde, ist die schwerwiegendste Untergrabung der Verpflichtungen eines Mitgliedstaats, die man sich vorstellen kann“,

kommentierte Rafał Trzaskowski, Stadtpräsident von Warschau und stellvertretender Vorsitzender der Bürgerplattform (PO). Er fügte hinzu:

„Dies ist genau die Art und Weise, wie das Polexit-Szenario umgesetzt wird. Nicht durch überschwängliche Erklärungen, sondern durch konkrete Entscheidungen, die die rechtlichen Grundlagen der EU untergraben und einen der wichtigsten Werte der Gemeinschaft in Frage stellen, nämlich das Recht auf ein unabhängiges Gericht“.

Ähnlich äußerte sich Borys Budka, stellvertretender Vorsitzender der Parlamentsfraktion der PO:

„Das Verfassungsgericht hat einen politischen Auftrag der Nowogrodzka (Anm.d.R.: Straße in Warschau, Sitz der PiS) ausgeführt. In einer rechtswidrigen Zusammensetzung, […] entschied es über eine Angelegenheit, die längst entschieden war. Es ist klar, dass die polnische Verfassung Vorrang vor europäischem Recht hat, was nichts an der Tatsache ändert, dass EU-Verträge Vorrang vor gewöhnlichen Gesetzen haben, und deshalb ist das Vorgehen der PiS u.a. im Bereich der Justiz illegal".

Am 10. Oktober fanden in Polen von der liberalen Opposition organisierte Demonstrationen unter dem Motto „Ich bleibe in der Union" statt. In Warschau sprach Donald Tusk vor Zehntausenden von Demonstranten über die negativen Folgen des Urteils des Verfassungsgerichts für Polens Position in der EU: „Wir müssen Polen retten, niemand wird es für uns tun. Dieses Urteil ist ein Verrat".

Zusätzlich forderte der Vorsitzende der Volkspartei (PSL), Władysław Kosiniak-Kamysz eine Verkürzung der Legislaturperiode des Sejms und vorgezogene Neuwahlen, was kein unmögliches Szenario ist, da die derzeitige Regierungskoalition nach dem Ausscheiden der Partei Porozumienie von Jarosław Gowin keine stabile Mehrheit mehr hat.

Laut Jarosław Gowin selbst steht die Regierung nun vor einer Alternative, die eine logische Folge des Urteils ist:

„Die Entscheidung des Verfassungsgerichts führt uns in ein Minenfeld. Entweder findet eine Anpassung der Verfassung an den Vertrag oder ein Polexit statt. Die PiS ist in eine Falle getappt, die sie selbst gestellt hat.“

Sieht auch die Regierung die Notwendigkeit, diese Wahl zu treffen? Eher nicht. In dieser Hinsicht wird das Urteil des Verfassungsgerichts vorerst ignoriert – d.h. es besteht weder die Absicht, die Verfassung zu ändern noch die EU zu verlassen. Die PiS-Politiker wissen, dass mehr als 80 % der Polen eine weitere Integration wünschen, argumentieren, dass der Polexit nur „Fake-News“ sei, die von der Opposition erfunden wurden und beteuern, in der Europäischen Union bleiben zu wollen. Morawieczki reagierte auf die Vorwürfe der Opposition mit einer emotionalen Rede im Sejm. Polen respektiere die EU-Verträge, sei jedoch nicht mit der willkürlichen Erweiterung von EU-Kompetenzen einverstanden.

Welche rechtliche Wirkung könnte das Urteil haben?

Auf rechtlicher Ebene bringt das Urteil des Verfassungsgerichts wenig Neues. Die Gültigkeit der vom Premierminister angefochtenen Bestimmungen des EU-Vertrags wird nicht aufgehoben werden. Die Entscheidung des Verfassungsgerichts führt nicht dazu, dass die Entscheidungen des EuGH außer Kraft gesetzt werden, da sie weder Urteile des EuGH aufheben noch die Auslegung des EU-Rechts durch das Luxemburger Gericht umstoßen können. Infolgedessen werden die angefochtenen Bestimmungen des EU-Vertrages im polnischen Rechtssystem in der Auslegung im Sinne der EuGH-Entscheidungen weiter in Kraft bleiben. Sowohl der Antrag des Premierministers als auch die Entscheidung des Verfassungsgerichts zielen nur darauf ab, innerstaatliche Wirkungen zu erzielen. So sollen polnische Gerichte daran gehindert werden, die vom EuGH festgelegte Auslegung des europäischen Rechts anzuwenden, und eine abschreckende Wirkung auf die Richter ausgeübt werden, die eine solche Auslegung im Sinne des EuGH anwenden möchten. Es ist davon auszugehen, dass nach dem Urteil des polnischen Verfassungsgerichtshofs ein Disziplinarverfahren gegen entsprechende Richter eingeleitet werden wird. Diese Befürchtung teilen 26 ehemalige Richter des Verfassungsgerichts, die kurz nach dem Urteil einen offenen Brief veröffentlicht haben.

Trotz der Veröffentlichung des Urteils im Gesetzblatt werden die unmittelbaren Folgen des Urteils des Verfassungsgerichts jedoch davon abhängen, ob und wie es in konkrete Gesetze und Maßnahmen gegen polnische Richter umgesetzt wird.

Was können die innenpolitischen Folgen des Urteils sein?

Einige spekulieren, dass man einen härteren Kurs und weitere Reformen im Justizwesen erwarten kann. Das Regierungslager will die Entscheidung des Verfassungsgerichts vom 7.Oktober nutzen, um Urteile des EuGH abzulehnen, die den Abschluss der polnischen Justizreform verhindern könnten. Jarosław Kaczyński hat bereits am 16. Oktober weitere Reformen der polnischen Gerichte angekündigt. Der PiS-Vorsitzende sprach von einer Verflachung der Struktur der polnischen Gerichte und einer radikalen Reduzierung der Rolle des Obersten Gerichtshofs. Revisionen sollen nicht wie bisher vom Obersten Gerichtshof, sondern von einem neu eingerichteten Netz von Regionalgerichten behandelt werden.

Das Urteil kann auch den internen öffentlichen Diskurs verschärfen. Weitere Reibereien mit Brüssel und das Auslösen einer Diskussion über den Polexit werden den politischen Streit im Land zwischen Kaczyński und Tusk, d.h. den beiden derzeit prominentesten Politikern, neu definieren. Wann immer die Opposition die PiS beschuldigt, Polen aus der EU herausnehmen zu wollen, wird die Regierungspartei dies abstreiten. Das Argument der PiS könnte lauten, dass Brüssel selbst, indem es die EU-Mittel für Polen blockiert, die Opposition benutzen will, um Polen aus der Gemeinschaft herauszuholen. Sollte es zur Verhängung von finanziellen Sanktionen gegenüber Polen kommen, könnte die pro-europäische Stimmung in der Bevölkerung kippen.

Wie reagiert die EU?

Dies wirft die Frage nach der Anwendbarkeit des mit dem EU-Haushalt verbundenen Prinzips „Geld für Rechtsstaatlichkeit" auf - ein äußerst drastisches Instrument des politischen Drucks.

Die Regierung hatte erwartet, dass die Europäische Kommission den Nationalen Wiederaufbauplan bereits im Juli genehmigen würde, so dass die ersten Gelder aus dem milliardenschweren Wiederaufbaufonds bereits im September hätten fließen können. Da das Verfassungsgericht jedoch den Vorrang des EU-Rechts vor nationalem Recht in Frage stellt, wird Brüssel seine Zustimmung weiterhin verweigern. Die formale Möglichkeit, die Gelder zu blockieren, ist durch eine Verordnung gegeben, die die Auszahlung der Eurofonds an die Rechtsstaatlichkeit knüpft. Brüssel hat von dieser Maßnahme bisher keinen Gebrauch gemacht, weil es gemäß der Vereinbarung mit Ungarn und Polen, die diesen Mechanismus angefochten haben, auf das Urteil des EU-Gerichtshofs wartet. Brüssel kann den polnischen Plan jedoch nicht auf unbestimmte Zeit aufhalten, und wird eine Entscheidung fällen müssen.

Fazit

Eine Einigung auf politischer Ebene zwischen Warschau und der Europäischen Kommission scheint notwendig zu sein. Eine solche Vereinbarung könnte eine unkontrollierte Eskalation des Streits verhindern, sobald der EuGH in einigen Monaten darüber entschieden hat, ob die Zahlungen, nicht nur aus dem Wiederaufbaufonds, sondern auch aus dem regulären EU-Haushalt an die Einhaltung der Rechtsstaatlichkeit gebunden sind. Die Antwort Warschaus auf finanzielle Sanktionen könnte darin bestehen, seinen Beitrag zur EU-Kasse auszusetzen. Dies wiederum könnte dazu führen, dass Polen das Stimmrecht im Rat entzogen wird. Dann könnte es unmöglich werden, den Streit zu beenden.

Asset Publisher

Contact

David Gregosz

David Gregosz bild

Director KAS office Poland

David.Gregosz@kas.de +48 22 845-9330

comment-portlet

Asset Publisher