Ratkaisut ja tiedotteet
Tiedotteita julkaistaan oikeusasiamiehen ratkaisuista, jotka ovat johtaneet toimenpiteeseen tai joilla voi muuten olla yleistä mielenkiintoa.
Virhe tapahtui näyttöpohjan käsittelyssä.
Java method "com.liferay.portlet.asset.model.impl.AssetEntryModelImpl.getTitle(String, boolean)" threw an exception when invoked on com.liferay.portlet.asset.model.impl.AssetEntryImpl object "{mvccVersion=6, ctCollectionId=0, entryId=755218, groupId=20184, companyId=20155, userId=236510, userName=Andrea Bergman, createDate=Thu Jun 05 07:29:35 GMT 2025, modifiedDate=Thu Jun 05 07:45:14 GMT 2025, classNameId=20109, classPK=755213, classUuid=30fc2b01-c99e-80ba-b95a-fb045d990953, classTypeId=260295, listable=true, visible=true, startDate=null, endDate=null, publishDate=Thu Jun 05 07:21:00 GMT 2025, expirationDate=null, mimeType=text/html, title=<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"fi_FI,se_FI,en_GB,sv_SE,smn,sms\" default-locale=\"fi_FI\"><Title language-id=\"fi_FI\">Kantelun tekemistä oikeusasiamiehelle on helpotettu</Title><Title language-id=\"se_FI\">Guoddaleami dahkan riekteáššeolbmui lea álkidahtton</Title><Title language-id=\"en_GB\">Submitting a complaint to the Ombudsman has been facilitated</Title><Title language-id=\"sv_SE\">Processen för att göra ett klagomål till justitieombudsmannen har förenklats</Title><Title language-id=\"smn\">Riehtiäššiulmui kuoddâlem lii tohhum älkkeebin</Title><Title language-id=\"sms\">Kuâddõõttmõõžž raajjmõš vuõiggâdvuõttäʹššooumže lij hiâlptum</Title></root>, description=, summary=, url=, layoutUuid=, height=0, width=0, priority=0.0}"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign entryTitle = htmlUtil.escape(... [in template "20155#20198#72902" at line 28, column 9]
----
1<#--
2Widget templates can be used to modify the look of a
3specific application.
4
5Please use the left panel to quickly add commonly used variables.
6Autocomplete is also available and can be invoked by typing "${".
7-->
8<#--
9Application display templates can be used to modify the look of a
10specific application.
11
12Please use the left panel to quickly add commonly used variables.
13Autocomplete is also available and can be invoked by typing "${".
14-->
15
16<table class="eoa-asset-table">
17<#list entries as entry>
18 <#assign entry = entry />
19
20 <#assign assetRenderer = entry.getAssetRenderer() />
21
22 <#assign entryDefaultLanguageId = entry.getDefaultLanguageId() />
23<!-- edlID: ${entryDefaultLanguageId} -->
24
25 <#assign localeString = "${locale.getLanguage()}_${locale.getCountry()}" />
26
27 <!-- ls: ${localeString} -->
28 <#assign entryTitle = htmlUtil.escape(entry.getTitle(localeString,false)) />
29
30
31 <#assign entryTitleDefault = htmlUtil.escape(entry.getTitle("fi_FI",false)) />
32<!-- def: ${entryTitleDefault} ::: tit: ${entryTitle} -->
33 <#assign showThis = true />
34
35 <#if localeString == "fi_FI" && entryDefaultLanguageId != "fi_FI" && entryTitle == entryTitleDefault >
36 <#assign showThis = false />
37 </#if>
38 <!-- LocaleLang: ${locale.getLanguage()} -->
39 <#if validator.isNull(entryTitle)>
40 <#assign showThis = false />
41 </#if>
42 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry) />
43 <#if assetLinkBehavior != "showFullContent">
44 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry, true) />
45 <#-- override the view in context link manually -->
46 <#-- assign viewURL = "/${locale}/-/${assetRenderer.getUrlTitle()}" / -->
47 </#if>
48
49 <#if showThis>
50 <tr>
51 <td class="eoa-asset-date"><@getMetadataField fieldName="publish-date" /></td>
52 <td class="eoa-asset-title"><a href="${viewURL}">${entryTitle}</a></td>
53 </tr>
54 </#if>
55
56
57
58</#list>
59</table>
60<#macro getDiscussion>
61 <#if validator.isNotNull(assetRenderer.getDiscussionPath()) && (enableComments == "true")>
62 <br />
63
64 <#assign discussionURL = renderResponse.createActionURL() />
65
66 ${discussionURL.setParameter("struts_action", "/asset_publisher/" + assetRenderer.getDiscussionPath())}
67
68 <@liferay_ui["discussion"]
69 className=entry.getClassName()
70 classPK=entry.getClassPK()
71 formAction=discussionURL?string
72 formName="fm" + entry.getClassPK()
73 ratingsEnabled=enableCommentRatings == "true"
74 redirect=portalUtil.getCurrentURL(request)
75 userId=assetRenderer.getUserId()
76 />
77 </#if>
78</#macro>
79
80<#macro getEditIcon>
81 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())>
82 <#assign redirectURL = renderResponse.createRenderURL() />
83
84 ${redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")}
85 ${redirectURL.setWindowState("pop_up")}
86
87 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" />
88
89 <#if validator.isNotNull(editPortletURL)>
90 <#assign title = languageUtil.format(locale, "edit-x", entryTitle) />
91
92 <@liferay_ui["icon"]
93 image="edit"
94 message=title
95 url="javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});"
96 />
97 </#if>
98 </#if>
99</#macro>
100
101<#macro getFlagsIcon>
102 <#if enableFlags == "true">
103 <@liferay_ui["flags"]
104 className=entry.getClassName()
105 classPK=entry.getClassPK()
106 contentTitle=entry.getTitle(locale)
107 label=false
108 reportedUserId=entry.getUserId()
109 />
110 </#if>
111</#macro>
112
113<#macro getMetadataField
114 fieldName
115>
116 <#if stringUtil.split(metadataFields)?seq_contains(fieldName)>
117 <span class="metadata-entry metadata-"${fieldName}">
118 <#assign dateFormat = "d.M.yyyy" />
119
120 <#if fieldName == "author">
121 <@liferay.language key="by" /> ${portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName())}
122 <#elseif fieldName == "categories">
123 <@liferay_ui["asset-categories-summary"]
124 className=entry.getClassName()
125 classPK=entry.getClassPK()
126 portletURL=renderResponse.createRenderURL()
127 />
128 <#elseif fieldName == "create-date">
129 ${dateUtil.getDate(entry.getCreateDate(), dateFormat, locale)}
130 <#elseif fieldName == "expiration-date">
131 ${dateUtil.getDate(entry.getExpirationDate(), dateFormat, locale)}
132 <#elseif fieldName == "modified-date">
133 ${dateUtil.getDate(entry.getModifiedDate(), dateFormat, locale)}
134 <#elseif fieldName == "priority">
135 ${entry.getPriority()}
136 <#elseif fieldName == "publish-date">
137 ${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)}
138 <#elseif fieldName == "tags">
139 <@liferay_ui["asset-tags-summary"]
140 className=entry.getClassName()
141 classPK=entry.getClassPK()
142 portletURL=renderResponse.createRenderURL()
143 />
144 <#elseif fieldName == "view-count">
145 <@liferay_ui["icon"]
146 image="history"
147 />
148
149 ${entry.getViewCount()} <@liferay.language key="views" />
150 </#if>
151 </span>
152 </#if>
153</#macro>
154
155<#macro getPrintIcon>
156 <#if enablePrint == "true" >
157 <#assign printURL = renderResponse.createRenderURL() />
158
159 ${printURL.setParameter("struts_action", "/asset_publisher/view_content")}
160 ${printURL.setParameter("assetEntryId", entry.getEntryId()?string)}
161 ${printURL.setParameter("viewMode", "print")}
162 ${printURL.setParameter("type", entry.getAssetRendererFactory().getType())}
163
164 <#if (validator.isNotNull(assetRenderer.getUrlTitle()))>
165 <#if (assetRenderer.getGroupId() != themeDisplay.getScopeGroupId())>
166 ${printURL.setParameter("groupId", assetRenderer.getGroupId()?string)}
167 </#if>
168
169 ${printURL.setParameter("urlTitle", assetRenderer.getUrlTitle())}
170 </#if>
171
172 ${printURL.setWindowState("pop_up")}
173
174 <@liferay_ui["icon"]
175 image="print"
176 message="print"
177 url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "printAsset', title: '" + languageUtil.format(locale, "print-x-x", ["hide-accessible", entryTitle]) + "', uri: '" + htmlUtil.escapeURL(printURL.toString()) + "'});"
178 />
179 </#if>
180</#macro>
181
182<#macro getRatings>
183 <#if (enableRatings == "true")>
184 <div class="asset-ratings">
185 <@liferay_ui["ratings"]
186 className=entry.getClassName()
187 classPK=entry.getClassPK()
188 />
189 </div>
190 </#if>
191</#macro>
192
193<#macro getRelatedAssets>
194 <#if enableRelatedAssets == "true">
195 <@liferay_ui["asset-links"]
196 assetEntryId=entry.getEntryId()
197 />
198 </#if>
199</#macro>
200
201<#macro getSocialBookmarks>
202 <#if enableSocialBookmarks == "true">
203 <@liferay_ui["social-bookmarks"]
204 displayStyle="${socialBookmarksDisplayStyle}"
205 target="_blank"
206 title=entry.getTitle(locale)
207 url=viewURL
208 />
209 </#if>
210</#macro>
