An error occurred while processing the template.
Java method "com.liferay.journal.model.impl.JournalArticleImpl.getContentByLocale(String)" threw an exception when invoked on com.liferay.journal.model.impl.JournalArticleImpl object "{uuid=bbb964de-584d-d205-4114-b756d8ff623d, id=887669, resourcePrimKey=887670, groupId=35732, companyId=20116, userId=47315, userName=Ambientia Migration, createDate=Fri May 18 10:30:53 EEST 2018, modifiedDate=Mon Mar 18 18:56:39 EET 2019, folderId=47972, classNameId=0, classPK=0, treePath=/47972/, articleId=887668, version=1.0, title=<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"fi_FI,en_US,sv_SE,\" default-locale=\"fi_FI\"><Title language-id=\"fi_FI\">Ulkoministeri Soini: Sääntöpohjaista kansainvälistä järjestelmää puolustettava</Title><Title language-id=\"en_US\">Minister for Foreign Affairs Soini: Rules-based international system to be defended</Title><Title language-id=\"sv_SE\">Utrikesminister Soini: Vi måste försvara det regelbaserade internationella systemet</Title></root>, urlTitle=ulkoministeri-soini-saantopohjaista-kansainvalista-jarjestelmaa-puolustettava, description=<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"fi_FI,en_US,sv_SE,\" default-locale=\"fi_FI\"><Description language-id=\"fi_FI\">Ulkoministeri Timo Soini osallistuu 17.–18.5.2018 Euroopan neuvoston ulkoministerikokoukseen Tanskan Helsingørissä.</Description><Description language-id=\"en_US\">Minister for Foreign Affairs Timo Soini will attend the Session of the Committee of Ministers of the Council of Europe at Elsinore, Denmark, on 17–18 May 2018. </Description><Description language-id=\"sv_SE\">Utrikesminister Timo Soini deltar i Europarådets utrikesministermöte i Helsingør i Danmark den 17–18 maj 2018. </Description></root>, content=<?xml version=\"1.0\"?>\n<root available-locales=\"fi_FI,sv_SE,en_US\" default-locale=\"fi_FI\">\n        <dynamic-element name=\"internalLinksContent\" type=\"text_area\" index-type=\"text\">\n            <dynamic-content language-id=\"sv_SE\"><![CDATA[<ul>\n <li><a href=\"http://formin-origin.finland.fi/public/default.aspx?contentid=327344&amp;nodeid=49298&amp;contentlan=3&amp;culture=sv-FI\" target=\"_top\">Utrikespolitik och säkerhetspolitik</a></li>\n</ul>]]></dynamic-content>\n            <dynamic-content language-id=\"fi_FI\"><![CDATA[<ul>\n <li><a href=\"http://formin-origin.finland.fi/public/default.aspx?nodeid=49298&amp;culture=fi-FI&amp;contentlan=1\" target=\"_top\">Ulkopolitiikka ja turvallisuuspolitiikka</a></li>\n</ul>]]></dynamic-content>\n            <dynamic-content language-id=\"en_US\"><![CDATA[<ul>\n <li><a href=\"http://formin-origin.finland.fi/public/default.aspx?contentid=327345&amp;nodeid=49298&amp;contentlan=2&amp;culture=en-US\" target=\"_top\">Foreign policy and security policy</a></li>\n</ul>]]></dynamic-content>\n        </dynamic-element>\n        <dynamic-element name=\"internalLinksLabel\" type=\"text\" index-type=\"keyword\">\n            <dynamic-content language-id=\"sv_SE\"><![CDATA[På vår webbplats]]></dynamic-content>\n            <dynamic-content language-id=\"fi_FI\"><![CDATA[Tässä palvelussa myös]]></dynamic-content>\n            <dynamic-content language-id=\"en_US\"><![CDATA[Also in this site]]></dynamic-content>\n        </dynamic-element>\n        <dynamic-element name=\"content\" type=\"text_area\" index-type=\"text\">\n            <dynamic-content language-id=\"sv_SE\"><![CDATA[<span><span><span><h1 class=\"paaotsikko\">Utrikesminister Soini: Vi måste försvara det regelbaserade internationella systemet</h1><p class=\"ingress\">Utrikesminister Timo Soini deltar i Europarådets utrikesministermöte i Helsingør i Danmark den 17–18 maj 2018.</p><p class=\"leipis\">Europarådet är Europas mest omfattande och äldsta mellanstatliga organisation och har som uppgift att trygga och vidareutveckla de mänskliga rättigheterna, den pluralistiska demokratin och rättsstatsprincipen. Finland är ordförande i Europarådets ministerkommitté sedan november 2018 och följande utrikesministermöte ordnas i Finland i maj 2019.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u00100;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p class=\"leipis\">”Systemen för att bevaka de mänskliga rättigheterna och rättsstaten utgör grunden för det regelbaserade multilaterala samarbetet stater emellan. Det måste försvaras. Europarådet befinner sig just nu i en på många sätt svår situation: de mänskliga rättigheterna ifrågasätts i fler länder. Därtill har organisationen politiska och ekonomiska svårigheter”, konstaterar utrikesminister <strong>Timo Soini</strong>.</p><p class=\"leipis\">Under sitt besök i Danmark håller utrikesminister Soini också ett anförande vid Köpenhamns universitet. Tema för anförandet är Finlands ordförandeskap i Arktiska rådet.</p><p class=\"leipis\">Ytterligare information<strong>:</strong> utrikesministers specialmedarbetare Riikka Taivassalo, tfn +358 46&nbsp;923, ansvarig tjänsteman Merja Lahtinen, tfn +358&nbsp;295&nbsp;350&nbsp;971</p><p class=\"leipis\">Utrikesministeriets e-postadresser har formen fornamn.efternamn@formin.fi.</p></span></span></span> \n<!--http://formin-origin.finland.fi/public/default.aspx?contentid=375174&currentnodeid=7747-->]]></dynamic-content>\n            <dynamic-content language-id=\"fi_FI\"><![CDATA[<span><span><span><h1 class=\"paaotsikko\">Ulkoministeri Soini: Sääntöpohjaista kansainvälistä järjestelmää puolustettava</h1><p class=\"ingress\">Ulkoministeri Timo Soini osallistuu 17.–18.5.2018 Euroopan neuvoston ulkoministerikokoukseen Tanskan Helsingørissä.</p><p class=\"leipis\">Euroopan neuvosto on Euroopan laajin ja vanhin valtioiden välinen järjestö, jonka perustehtävä on ihmisoikeuksien, moniarvoisen demokratian ja oikeusvaltioperiaatteen turvaaminen ja kehittäminen. Suomi &nbsp;toimii ministerikomitean puheenjohtajana marraskuusta 2018 alkaen ja seuraava ulkoministerikokous järjestetään Suomessa toukokuussa 2019.</p><p class=\"leipis\">\"Ihmisoikeus- ja oikeusvaltiojärjestelmä turvaa sääntöpohjaista monenkeskistä yhteistyötä valtioiden välillä. Tätä on puolustettava. Euroopan neuvosto on monella tapaa haastavassa tilanteessa: ihmisoikeuksia kyseenalaistetaan yhä enemmän monissa maissa. Lisäksi järjestö on joutunut myös poliittisten ja taloudellisten ongelmien eteen\", ulkoministeri <strong>Timo Soini</strong> toteaa.</p><p class=\"leipis\">Ulkoministeri Soinin Tanskan vierailuun kuuluu lisäksi puhetilaisuus Kööpenhaminan yliopistossa. Puhetilaisuuden aiheena on Suomen puheenjohtajuus Arktisessa neuvostossa.</p><p class=\"leipis\">Lisätietoja: &nbsp;ulkoministerin erityisavustaja Riikka Taivassalo, puh. +358 46 923 4581, vastuuvirkamies Merja Lahtinen, puh. +358 295 350 971</p><p>Ulkoministeriön sähköpostiosoitteet ovat muotoa <a href=\"mailto:etunimi.sukunimi@formin.fi\">etunimi.sukunimi@formin.fi</a></p></span></span></span> \n<!--http://formin-origin.finland.fi/public/default.aspx?contentid=375173&currentnodeid=7747-->]]></dynamic-content>\n            <dynamic-content language-id=\"en_US\"><![CDATA[<span><span><span><h1 class=\"paaotsikko\">Minister for Foreign Affairs Soini: Rules-based international system to be defended</h1><p class=\"ingress\">Minister for Foreign Affairs Timo Soini will attend the Session of the Committee of Ministers of the Council of Europe at Elsinore, Denmark, on 17–18 May 2018.</p><p class=\"leipis\">The Council of Europe is the most extensive and oldest intergovernmental organisation, whose main task is to safeguard and develop human rights, pluralistic democracy, and the rule of law. Finland will hold the six-month Chairmanship of the Committee of Ministers from November 2018 until May 2019. The next Foreign Ministers' meeting will be organised in Finland in May 2019.</p><p class=\"leipis\">\"The protection of human rights and the rule of law safeguards rules-based multilateral cooperation between states. This must be defended. The current situation poses many challenges to the Council of Europe: human rights are increasingly called into question in many countries. In addition, the organisation has had to deal with political and financial problems,\" Foreign Minister <strong>Timo Soini </strong>says.</p><p class=\"leipis\">Minister Soini will also speak at the University of Copenhagen. The theme of his speech will be Finland's Arctic Chairmanship.</p><p class=\"leipis\">Inquiries: Riikka Taivassalo, Special Adviser to the Foreign Minister, tel. +358 46 923 4581, Merja Lahtinen, Desk Officer, Unit for Human Rights Policy, tel. +358 295 350 971</p><p class=\"leipis\">The Foreign Ministry’s email addresses are in the format <a href=\"mailto:firstname.lastname@formin.fi\"><u>firstname.lastname@formin.fi</u></a></p><p></p></span></span></span> \n<!--http://formin-origin.finland.fi/public/default.aspx?contentid=375175&currentnodeid=7747-->]]></dynamic-content>\n        </dynamic-element>\n</root>, DDMStructureKey=MIGRATION-WEB-CONTENT, DDMTemplateKey=MIGRATION-WEB-CONTENT, layoutUuid=, displayDate=Thu May 17 06:00:00 EEST 2018, expirationDate=null, reviewDate=null, indexable=true, smallImage=false, smallImageId=887671, smallImageURL=, lastPublishDate=null, status=0, statusByUserId=47315, statusByUserName=Ambientia Migration, statusDate=Wed May 30 11:44:57 EEST 2018}"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign docXML = saxReaderUtil.read(j...  [in template "20116#20152#839959" at line 58, column 9]
----
1<#assign imagesPath = themeDisplay.getPathThemeImages()> 
2<#assign dateFormat = "d.M.yyyy" /> 
3<#assign timeFormat = "H.mm" /> 
4 
5<#assign curAssetId = request.getParameter("curAsset")! /> 
6<#if !curAssetId?has_content> 
7    <#assign curAssetId = "0" /> 
8</#if> 
9 
10<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
11<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
12<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
13<#assign DDMStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService")> 
14<#assign orderUtil = staticUtil["com.liferay.portal.kernel.util.OrderByComparatorFactoryUtil"] /> 
15<#assign AssetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
16 
17<#if portletPreferences.portletSetupLinkToLayoutUuid?has_content> 
18    <#assign linkAppUrls = portletPreferences.portletSetupLinkToLayoutUuid[0] /> 
19    <#assign targetLayout = layoutService.fetchLayoutByUuidAndGroupId(linkAppUrls, themeDisplay.getScopeGroupId(), false) /> 
20    <#assign targetAssetPublisher = targetLayout.getTypeSettingsProperties().getProperty("default-asset-publisher-portlet-id") /> 
21    <#assign targetInstance = targetAssetPublisher?keep_after_last("_") /> 
22</#if> 
23 
24<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
25 
26<#-- Portlet preferences - Category ids --> 
27<#assign filteredCategoryIds = portletPreferences['queryValues0'] /> 
28<#assign AssetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService") /> 
29 
30<#-- Portlet custom title --> 
31<#assign portlet_display = portletDisplay> 
32<#assign portlet_title = htmlUtil.escape(portlet_display.getTitle())> 
33<#assign portlet_setup = portlet_display.getPortletSetup()> 
34<#assign portlet_show_title = portlet_setup.getValue("portletSetupUseCustomTitle","Boolean")> 
35 
36<#if portlet_show_title == "true"> 
37    <h1>${portlet_title}</h1> 
38</#if> 
39 
40<div class="current-issues"> 
41     
42    <div class="span-row"> 
43    </div>   
44     
45<#if entries?has_content> 
46 
47    <#list entries as entry> 
48 
49        <#if entry.assetRenderer??> 
50 
51        <#assign assetRenderer = entry.getAssetRenderer() /> 
52        <#assign journalArticle = assetRenderer.getArticle() /> 
53        <#assign viewUrl = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) /> 
54        <#assign displayDate = dateUtil.getDate(journalArticle.displayDate, dateFormat, locale) /> 
55 
56        <#assign stId = journalArticle.getDDMStructure().getStructureId() /> 
57 
58        <#assign docXML = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) /> 
59        <#assign headline = docXML.valueOf("//dynamic-element[@name='Title']/dynamic-content/text()") /> 
60        <#assign content = docXML.valueOf("//dynamic-element[@name='Content']/dynamic-content/text()") /> 
61        <#-- 
62        <#assign categories = entry.getCategories()> 
63        --> 
64        <#assign categories = assetCategoryLocalService.getEntryCategories(entry.entryId) /> 
65 
66        <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) /> 
67        <#assign description = journalArticle.getDescription(locale) /> 
68         
69        <#if targetInstance?has_content> 
70                        <#assign viewUrl = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry)?keep_before("?") /> 
71        </#if> 
72 
73 
74            <div class="item span-row"> 
75 
76                <div class="span-3"> 
77                    <span class="date">${displayDate}</span> 
78                </div> 
79 
80                <div class="span-9"> 
81                    <a href="${viewUrl}"> 
82                        <h3 class="h4 title">${entryTitle}</h3> 
83                        <div class="content"> 
84                            ${description} 
85                        </div> 
86                    </a> 
87                     
88                    <div class="meta"> 
89                        <span class="category"> 
90                            <#list categories as category> 
91                                <#if category.vocabularyId==1 > 
92                                    <#assign categoryURL = renderResponse.createRenderURL() /> 
93                                    ${categoryURL.setParameter("resetCur", "true")} 
94                                    ${categoryURL.setParameter("categoryId", category.getCategoryId()?string)} 
95 
96                                    <span class="cat">${category.getTitle(locale)}</span> 
97                                    <#if (category_has_next)><span class="pipe"> | </span></#if> 
98                                </#if> 
99                                 
100                                <#-- // print only those categories 
101                                     // that are selected as a filters 
102                                     // in asset publisher's settings page --> 
103                                 
104                                <#-- 
105                                <#if filteredCategoryIds?has_content> 
106 
107                                    <#list filteredCategoryIds as value> 
108                                        <#if value == category.getCategoryId()?c> 
109                                            <#assign categoryURL = renderResponse.createRenderURL() /> 
110 
111                                            ${categoryURL.setParameter("resetCur", "true")} 
112                                            ${categoryURL.setParameter("categoryId", category.getCategoryId()?string)} 
113 
114                                            <span class="cat">${category.getTitle(locale)}</span> 
115                                            <#if (category_has_next)><span class="pipe"> | </span></#if> 
116 
117                                        </#if> 
118                                    </#list> 
119                                <#else> 
120                                    <#assign categoryURL = renderResponse.createRenderURL() /> 
121                                    ${categoryURL.setParameter("resetCur", "true")} 
122                                    ${categoryURL.setParameter("categoryId", category.getCategoryId()?string)} 
123 
124                                    <span class="cat">${category.getTitle(locale)}</span> 
125                                    <#if (category_has_next)><span class="pipe"> | </span></#if> 
126                                </#if> 
127                                --> 
128 
129                            </#list> 
130                        </span> 
131                    </div> 
132                </div> 
133 
134            </div> 
135        </#if> 
136    </#list> 
137 
138    <div class="clear"></div> 
139    </div> 
140     
141    <style> 
142    .um-content .current-issues .category .cat+.pipe { 
143       display: none; 
144
145    </style> 
146</#if>