Palvelua päivitetään tiistaina 6.7. klo 16-18 välisellä ajalla, käyttökatkot mahdollisia

Virhe tapahtui prosessoidessa esitysmallia.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")  [in template "20095#20123#72916" at line 11, column 34]

----
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: #assign assetLinkLocalService = servi...  [in template "20095#20123#72916" at line 11, column 1]
----
1<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
2<#assign currentArticle = JournalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
3 
4<h1>${.vars['reserved-article-title'].data}</h1> 
5 
6${.vars['reserved-article-description'].data} 
7${content.getData()} 
8 
9 
10  <#-- RELATED MATERIAL CONTENT -->  
11<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
12<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
13 <#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
14 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
15 <#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
16   <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
17 
18 <#if currentArticleRelatedLinks?has_content> 
19        <#assign relatedLinks = []> 
20        <#list currentArticleRelatedLinks as related_entry> 
21          
22            <#assign relatedAssetEntryId = related_entry.getEntryId2() /> 
23            <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
24            <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
25            <#assign relatedArticle = JournalArticleLocalService.getLatestArticle(relatedAssetEntryPrimKey) /> 
26            <#assign relatedArticleId = relatedArticle.getArticleId() /> 
27            <#assign docXml = saxReaderUtil.read(relatedArticle.getContent()) /> 
28            <#assign fileTitle = docXml.valueOf("//dynamic-element[@name='fileName']/dynamic-content/text()") /> 
29           
30             <#assign fileUrl = docXml.valueOf("//dynamic-element[@name='fileUrl']/dynamic-content/text()") /> 
31    
32             <#assign linkObject = {"fileTitle": relatedArticle.getTitleCurrentValue(),"fileUrl": fileUrl } /> 
33            <#assign relatedLinks += [linkObject] /> 
34        </#list> 
35  </#if> 
36  
37  <#if relatedLinks?has_content> 
38    <h2>Materiaali</h2> 
39        <div class="article-list-container"> 
40                <ul class="article-list list-unstyled"> 
41                 <#list relatedLinks as link> 
42                    <li> 
43                      <a href="${link.fileUrl}" target="_blank"> 
44                           <strong> 
45                            <#if link.fileTitle?? && link.fileTitle?has_content> 
46                                ${link.fileTitle} 
47                            <#else> 
48                                Lataa materiaali 
49                            </#if> 
50                           </strong> 
51                       </a> 
52                     </li> 
53                 </#list> 
54              </ul> 
55        </div> 
56 </#if> 
57 
58<#assign isContent = 0> 
59<#list links.getSiblings() as link> 
60                 
61        <#if link.linkTitle?? && link.linkTitle.getData()?has_content> 
62            <#assign isContent = 1> 
63        
64        </#if> 
65       
66</#list> 
67 
68 <#if isContent?? && isContent?has_content && isContent == 1> 
69    <h2>Linkit</h2> 
70      <div class="article-list-container"> 
71                <ul class="article-list list-unstyled"> 
72                    <#list links.getSiblings() as link> 
73                     <li> 
74                        <a href="${link.linkURL.getData()}" target="_blank"> 
75                           <strong> 
76                            <#if link.linkTitle?? && link.linkTitle.getData()?has_content> 
77                                ${link.linkTitle.getData()} 
78                            <#else> 
79                                Avaa linkki 
80                            </#if> 
81                           </strong> 
82                       </a> 
83                    
84                     </li> 
85                    </#list> 
86         </ul> 
87        </div> 
88</#if>