Back Lumin luomusarja: Mitä luomu on?

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy962.getArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy962 object "com.ch5finland.mtk.site.JournalArticleLocalServiceOverride@5bd32153"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #local article = JournalArticleLocalS...  [in template "43867" in function "getJournalArticle" at line 58, column 5]
----
1<#-- Artikkeli --> 
2<#-- 04/04/2019--> 
3<#-- INIT --> 
4 
5<#assign dlAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") /> 
6<#-- Import common variables, functions & macros --> 
7<#import "${templatesPath}/43867" as ch5> 
8<#assign exclusiveMode = ch5.isExclusiveMode() > 
9 
10<#assign title = ch5.getTitle() /> 
11<#assign summary = ch5.getSummary()/> 
12<#assign date = ch5.getDisplayDate()/> 
13<#assign contentType = ch5.getStructureName() /> 
14<#assign membersOnly = extra.getSiblings()!""> 
15<#assign youtubeURL = video.source.youtubeURL.getData() > 
16<#assign dreambrokerURL = video.source.dreambrokerURL.getData() > 
17<#assign caption = video.videoCaption.getData() > 
18<#assign bodyText = body.getData() /> 
19<#assign attachments = attachment.getSiblings()!""> 
20<#-- Get article type category from a specific vocabulary. User can select multiple categories from the UI, but only one is shown to the user -> output only the first selected category. --> 
21<#assign articleTypeList = ch5.getCategoryNames(articleTypeVocabularyId) /> 
22<#assign articleType = articleTypeList?first!"" /> 
23<script > 
24    ( function() { var youtube = document.querySelectorAll( ".youtube" ); for (var i = 0; i < youtube.length; i++) { var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; var image = new Image(); image.src = source; image.addEventListener( "load", function() { youtube[ i ].appendChild( image ); }( i ) ); youtube[i].addEventListener( "click", function() { var iframe = document.createElement( "iframe" ); iframe.setAttribute( "frameborder", "0" ); iframe.setAttribute( "allowfullscreen", "" ); iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); this.innerHTML = ""; this.appendChild( iframe ); } ); }; } )(); 
25</script> 
26 
27 
28<#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
29<#assign mtkpaagroup = GroupLocalService.fetchGroup(groupId) > 
30 
31<#if exclusiveMode > 
32	<@ch5.exclusiveModeScripts /> 
33</#if> 
34 
35<#--------------- doby trigger ---------------> 
36<#if Tekstilaatikkohfrr.getSiblings()?has_content> 
37    <#list Tekstilaatikkohfrr.getSiblings() as nbox> 
38        <#assign nostolaatikko = ''> 
39        <#assign nostolaatikko += '<div class="card nostokortti" ><div><h5 class="card-title nostokorttiotsikko">${nbox.getData()}</h5></div> '> 
40        <#if nbox.Tekstilaatikko7cq1.getSiblings()?has_content> 
41            <#assign nostolaatikko += '<div class="card-body"> <div class="container"> '> 
42            <#list nbox.Tekstilaatikko7cq1.getSiblings() as row> 
43                <#assign nostolaatikko += ' 
44                    <div class="row nostokorttirivi"> 
45                        <div class="col-sm"> 
46                            <h5 class="nostokorttirivitextarvo font-weight-bold">${row.getData()}</h5> 
47                            <p class="nostokorttirivitextarvo">${row.Tekstilaatikkob7rx.getData()}</p> 
48                        </div> 
49                        <div class="col-sm"> 
50                            <div class="nostokorttiriviicon"> 
51                                <div class="nostokorttiriviiconkehys"> 
52                                    <i class="${row.Tekstilaatikko61hk.getData()}" style="color: ${row.Tekstilaatikko61hk.Vri980u.getData()};"></i> 
53                                </div> 
54                                <div class="nostokorttirivitext"> 
55                                    <p class="nostokorttirivitextnum" style="color: ${row.Tekstilaatikko61hk.Vri980u.getData()};">${row.Tekstilaatikko61hk.Tekstilaatikko356z.getData()}</p> 
56                                    <p>${row.Tekstilaatikko61hk.Tekstilaatikkofbiq.getData()}</p> 
57                                </div> 
58                            </div> 
59                        </div> 
60                        <div class="col-sm"> 
61                            <div class="nostokorttiriviicon"> 
62                                <div class="nostokorttiriviiconkehys"> 
63                                    <i class="${row.Tekstilaatikkoj1w6.getData()}" style="color: ${row.Tekstilaatikkoj1w6.Vri2xek.getData()};"></i> 
64                                </div> 
65                                <div class="nostokorttirivitext"> 
66                                    <p class="nostokorttirivitextnum" style="color: ${row.Tekstilaatikkoj1w6.Vri2xek.getData()};">${row.Tekstilaatikkoj1w6.Tekstilaatikkobp7i.getData()}</p> 
67                                    <p>${row.Tekstilaatikkoj1w6.Tekstilaatikkohnae.getData()}</p> 
68                                </div> 
69                            </div> 
70                        </div> 
71                    </div> 
72                '> 
73            </#list> 
74            <#assign nostolaatikko += '</div></div>'> 
75        </#if> 
76        <#assign nostolaatikko += '</div>'> 
77        <#assign bodyText = "${bodyText?replace('[[info]]', nostolaatikko, 'f')}"> 
78    </#list> 
79</#if> 
80<#assign bodyText = "${bodyText?replace('[[info]]', '')}"> 
81    <#if Tekstilaatikkoj4bk.getSiblings()?has_content> 
82        <#list Tekstilaatikkoj4bk.getSiblings() as cur_Tekstilaatikkoj4bk> 
83            <#assign Lainausnoste = ' 
84                <div class="container" style="margin-left: 18px;"> 
85                    <div class="mtkartikkeliLainausnostetext">  
86                        <div class="sitaattiteksti">${cur_Tekstilaatikkoj4bk.getData()} </div> 
87                    </div> 
88                </div> 
89            '> 
90            <#assign bodyText = "${bodyText?replace('[[lainaus]]', Lainausnoste, 'f')}"> 
91        </#list> 
92    </#if> 
93    <#assign bodyText = "${bodyText?replace('[[lainaus]]', '')}"> 
94    <#if Teksti3wcx.getSiblings()?has_content> 
95        <#list Teksti3wcx.getSiblings() as cur_Teksti3wcx> 
96            <#assign nostolaatikkohtml = ' 
97                <div class="card nostokortti" > 
98                    <div> 
99                        <h5 class="card-title nostokorttiotsikko">${cur_Teksti3wcx.getData()}</h5> 
100                    </div> 
101                    <div class="card-body"> 
102                        <div class="container">${cur_Teksti3wcx.HTML3qzk.getData()}</div> 
103                    </div> 
104                </div> 
105            '> 
106            <#assign bodyText = "${bodyText?replace('[[nosto]]', nostolaatikkohtml, 'f')}"> 
107        </#list> 
108         
109    </#if> 
110<#assign bodyText = "${bodyText?replace('[[nosto]]', '')}"> 
111<#--------------- OUTPUT ---------------> 
112<div class="container <#if exclusiveMode >exclusive-mode</#if>" style=""> 
113    <div class="row"> 
114        <div class="col"> 
115 
116            <#if articleType?has_content> 
117                <p>${contentType} – ${articleType}</p> 
118            <#else> 
119                <p>${contentType}</p> 
120            </#if> 
121 
122            <h1>${title}</h1> 
123            <#if main_author?? && main_author?has_content> 
124                <p class="text-muted">${date}</p> 
125            <#else> 
126                <p class="text-muted">${date} ${author.getData()}</p> 
127            </#if> 
128            <#if summary?has_content> 
129                <div class="font-weight-light article-intro">${summary}</div> 
130            </#if> 
131        </div> 
132        <div class="col-1"> 
133 
134        </div> 
135    </div> 
136    <div class="row"> 
137        <div class="col-11" > 
138            <#if youtubeURL?? && youtubeURL != ""> 
139                ${ch5.getVideoEmbed(youtubeURL, caption)} 
140                <#-- set og image if paakuva exists --> 
141                <#if image.getData()?? && image.getData() != ""> 
142                    <@ch5.setOgImage image /> 
143                </#if> 
144            <#elseif dreambrokerURL?? && dreambrokerURL != ""> 
145                ${ch5.getVideoEmbed(dreambrokerURL, caption)} 
146            <#elseif image.getData()?? && image.getData() != "" && hideArticleImage?? && hideArticleImage.getData() != "true"> 
147                   <@ch5.getadatiivinemediaimage image /> 
148            </#if> 
149        </div> 
150<#if !exclusiveMode>         
151        <div  style="" class="col-11 col-md-1"> 
152            <#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
153            <#assign mtkpaagroup = GroupLocalService.fetchGroup(groupId) > 
154            <div class="artikkelisomelista"> 
155                <ul class="list-unstyled " style="height: 0;"> 
156                    <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://${ch5.getVirtualHostForGroup(mtkpaagroup)}/-/${.vars['reserved-article-url-title'].data}" target="_blank" class="fab fa-facebook-f fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediafacebook ml-3  mt-0" ></a></li> 
157                    <li><a href="https://twitter.com/intent/tweet?url=https://${ch5.getVirtualHostForGroup(mtkpaagroup)}/-/${.vars['reserved-article-url-title'].data}" target="_blank" class="fab fa-twitter fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediatwitter ml-3"></a></li> 
158                    <li><a href="whatsapp://send?text=https://${ch5.getVirtualHostForGroup(mtkpaagroup)}/-/${.vars['reserved-article-url-title'].data}" data-action="share/whatsapp/share" target="_blank" class="fab fa-whatsapp fimtkteemaartikkelilistasosiaalinenmedia fimtkteemaartikkelilistasosiaalinenmediawhatsapp ml-3"></a></li> 
159                </ul> 
160            </div> 
161        </div> 
162</#if>         
163        <div class="col-11" >	 
164				 
165						<@ch5.listArticleThemes/> 
166 
167            ${ch5.getFilteredContent(bodyText)} 
168            <@ch5.memberInfo membersOnly /> 
169            <#if attachments?has_content> 
170                <@ch5.listAttachments attachments /> 
171            </#if> 
172            <#if main_author?? && main_author?has_content> 
173				<@ch5.getWebContentHTML main_author /> 
174			</#if> 
175			 
176			<#if contactPerson1?has_content><#assign contact1 = contactPerson1.getData()></#if> 
177            <#if contactPerson2?has_content><#assign contact2 = contactPerson2.getData()></#if> 
178            <#if contactPerson3?has_content><#assign contact3 = contactPerson3.getData()></#if> 
179 
180            <#if contact1?has_content> 
181				<@ch5.getWebContentHTML contactPerson1 /> 
182			</#if> 
183            <#if contact2?has_content> 
184				<@ch5.getWebContentHTML contactPerson2 /> 
185			</#if> 
186            <#if contact3?has_content> 
187				<@ch5.getWebContentHTML contactPerson3 /> 
188			</#if> 
189 
190            <#--  <#if article_author?? && article_author?has_content> 
191                <#assign contact = article_author.getData()> 
192            </#if> 
193            <#if contact?has_content> 
194				<@ch5.getWebContentHTML article_author /> 
195			</#if>  --> 
196 
197            <#--<@ch5.listRelatedArticles/>--> 
198 
199            <#attempt> 
200                <p><@ch5.listTags tagBaseUrl="/artikkelit/-/tag/"/><p> 
201            <#recover> 
202                <pre> 
203                    ${.error} 
204                </pre> 
205            </#attempt> 
206        </div> 
207 
208    </div> 
209</div> 
210 
211<#assign url = "https://${ch5.getVirtualHostForGroup(mtkpaagroup)}/-/${.vars['reserved-article-url-title'].data}"> 
212<@ch5.getogptags title summary url />