Asset Publisher

An error occurred while processing the template.
Java method "com.liferay.journal.web.asset.JournalArticleAssetRenderer.getTitle(Locale)" threw an exception when invoked on com.liferay.journal.web.asset.JournalArticleAssetRenderer object "com.liferay.journal.web.asset.JournalArticleAssetRenderer@c8a5c7b"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: entryTitle = htmlUtil.escape(assetRen...  [in template "20100#20136#173344722" at line 45, column 13]
	- Reached through: #assign-container  [in template "20100#20136#173344722" at line 38, column 13]
----
1<#assign color_scheme = themeDisplay.getColorScheme().getCssClass()> 
2<#assign dlAppLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"] > 
3<#assign dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] > 
4 
5 
6<#if !entries?has_content> 
7<#if !themeDisplay.isSignedIn()> 
8${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)} 
9</#if> 
10 
11<div class="col-md-1 alert alert-info"> 
12    <!-- <@liferay_ui["message"] key="there-are-no-results" /> --> 
13    <h2> <@liferay.language key="LatestNews" /> </h2> 
14</div> 
15</#if> 
16<#assign cnt=0/> 
17 
18<section> 
19 
20    <div class="container-fluid g-py-10"> 
21 
22        <div class="  g-mb-30 g-mt-50 text-center"> 
23            <h2 class="h1 text-uppercase mb-3 g-color-bu-blue font-weight-bold"> 
24                <#if locale == "ar_SA"> 
25                الأخبار 
26                <#else> 
27                News 
28                </#if> 
29            </h2> 
30            <div class="d-inline-block g-width-60 g-py-2 g-bg-bu-green2 g-height-1 mb-3"></div> 
31        </div> 
32 
33        <div class="row p-row g-pl-100 g-pr-100 " > 
34 
35            <#assign  counter1=0> 
36 
37            <#list entries as entry> 
38            <#assign 
39            entry = entry 
40 
41            pdate=entry.getPublishDate() 
42 
43            assetRenderer = entry.getAssetRenderer() 
44 
45            entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) 
46 
47            journalArticle = assetRenderer.getArticle() 
48 
49            viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent")) 
50            /> 
51            <#assign docXml = saxReaderUtil.read(assetRenderer.getArticle().getContentByLocale(locale)) /> 
52            <#assign news_title = docXml.valueOf("//dynamic-element[@name='news_title']/dynamic-content/text()") /> 
53            <#assign s_image = docXml.valueOf("//dynamic-element[@name='s_image']/dynamic-content/text()") /> 
54            <#assign b_image = docXml.valueOf("//dynamic-element[@name='b_image']/dynamic-content/text()") /> 
55            <#assign short_desc = docXml.valueOf("//dynamic-element[@name='short_desc']/dynamic-content/text()") /> 
56            <#assign category = docXml.valueOf("//dynamic-element[@name='Category']/dynamic-content/text()") /> 
57            <#assign news_desc = docXml.valueOf("//dynamic-element[@name='news_desc']/dynamic-content/text()") /> 
58            <#assign CategoryAr_SA = docXml.valueOf("//dynamic-element[@name='CategoryAr_SA']/dynamic-content/text()") /> 
59 
60 
61            <#assign urlTitle = journalArticle.getUrlTitle()> 
62            <#assign articleId = journalArticle.getArticleId()> 
63            <#assign redirect = portalUtil.getCurrentURL(request)> 
64 
65            <#if s_image?has_content    > 
66            <#assign s_image = s_image 
67            dlFile_hashmap = jsonFactoryUtil.createJSONObject(s_image) 
68            uuid = dlFile_hashmap.uuid 
69            groupId = dlFile_hashmap.groupId 
70            dlFile = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid,groupId?number) 
71            s_image_url =  dlUtil.getPreviewURL(dlFile, dlFile.getFileVersion(),themeDisplay,'') /> 
72            </#if> 
73 
74            <#assign cnt=cnt+1/> 
75 
76 
77            <#if b_image?has_content    > 
78            <#assign b_image = b_image 
79            dlFile_hashmap = jsonFactoryUtil.createJSONObject(b_image) 
80            uuid = dlFile_hashmap.uuid 
81            groupId = dlFile_hashmap.groupId 
82            dlFile = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid,groupId?number) 
83            b_image_url =  dlUtil.getPreviewURL(dlFile, dlFile.getFileVersion(),themeDisplay,'') 
84            /> 
85            </#if> 
86 
87            <#assign GroupLocalServiceUtil  = staticUtil["com.liferay.portal.kernel.service.GroupLocalServiceUtil"] 
88 
89            mysite = GroupLocalServiceUtil.getGroup(assetRenderer.getGroupId()).getName()/> 
90 
91 
92 
93                    <div class=" col-sm-4 "> 
94                      <!-- Blog Grid Overlap Blocks --> 
95 
96                      <article> 
97                        <img class="img-fluid w-100" src="${s_image_url}" alt="Image Description" style="height: 367px;"> 
98                    <#if cnt%2==0> 
99                        <div class="g-width-80x g-pt-20 <#if cnt==1> g-bg-white <#else> g-bg-bu-blue </#if> g-pos-rel g-z-index-1 g-pa-30 g-mt-minus-50 mx-auto u-shadow-v2  rounded-bu <#if cnt==1> g-brd-around g-brd-gray-light-v4 <#else>  </#if>"  style="height: 270px !important; top: -90px;" > 
100 
101                            <ul class="u-list-inline d-block g-color-gray-dark-v4 g-font-weight-600 g-font-size-12 text-uppercase mb-2"> 
102                                <li class="list-inline-item"> 
103                                    <@getMetadataField fieldName="publish-date" /> 
104                                </li> 
105                                <li class="list-inline-item">/</li> 
106                                <li class="list-inline-item"> 
107                                    <a class="u-link-v5 g-color-gray-dark-v4 g-color-primary--hover" href="/news-archive"> 
108                                        <i class="icon-bubbles align-middle"></i> 
109                                        <#if locale == "ar_SA"> ${CategoryAr_SA} <#else> ${category} </#if> 
110                                    </a> 
111                                </li> 
112                            </ul> 
113                            <h2 class="h5 g-font-weight-600 mb-3" style=" overflow: hidden;height:86px;"> 
114                                <a class="u-link-v5 <#if cnt==1> g-color-bu-blue <#else> g-color-white </#if> g-color-primary--hover g-cursor-pointer" href="/full-news/-/asset_publisher/${articleId}?redirect=${redirect}&groupId=${journalArticle.getGroupId()}">${news_title}</a> 
115                              </h2> 
116                            <p class="g-color-gray-dark-v4  u-info-v1-1 g-height-50 g-pa-10-30-0">${short_desc}</p> 
117                            <a class="g-font-size-16   <#if locale == "ar_SA"> fa fa-chevron-left <#else> fa fa-chevron-right</#if> g-pt-10 g-pb-10 g-pl-25 g-pr-25 g-rounded-50<#if cnt==1>   g-color-white g-bg-bu-blue <#else> g-bg-white  g-color-bu-blue   </#if>" href="#"></a> 
118                           </div> 
119                    <#else> 
120                    <div class="g-width-80x g-pt-20  <#if cnt==2> g-bg-bu-blue  <#else> g-bg-white </#if> g-pos-rel g-z-index-1 g-pa-30 g-mt-minus-50 mx-auto u-shadow-v2  rounded-bu <#if cnt==2>  <#else> g-brd-around g-brd-gray-light-v4 </#if> " style="height: 270px !important; top: -90px;"> 
121 
122                            <ul class="u-list-inline d-block g-color-gray-dark-v4 g-font-weight-600 g-font-size-12 text-uppercase mb-2"> 
123                              <li class="list-inline-item"> 
124                                  <@getMetadataField fieldName="publish-date" /> 
125                              </li> 
126                              <li class="list-inline-item">/</li> 
127                              <li class="list-inline-item"> 
128                                  <a class="u-link-v5 g-color-gray-dark-v4 g-color-primary--hover" href="/news-archive"> 
129                                      <i class="icon-bubbles align-middle"></i> 
130                                      <#if locale == "ar_SA"> ${CategoryAr_SA} <#else> ${category} </#if> 
131                                  </a> 
132                              </li> 
133                          </ul> 
134                          <h2 class="h5  g-font-weight-600 mb-3" style=" overflow: hidden;height:86px;"> 
135                              <a class="u-link-v5 <#if cnt==2>  g-color-white <#else>g-color-bu-blue </#if> g-color-primary--hover g-cursor-pointer" href="/full-news/-/asset_publisher/${articleId}?redirect=${redirect}&groupId=${journalArticle.getGroupId()}">${news_title}</a> 
136                            </h2> 
137                          <p class="g-color-gray-dark-v4 u-info-v1-1 g-height-50 g-pa-10-30-0">${short_desc}</p> 
138                          <a class="g-font-size-16    <#if locale == "ar_SA"> fa fa-chevron-left <#else> fa fa-chevron-right</#if>  g-pt-10 g-pb-10 g-pl-25 g-pr-25 g-rounded-50 <#if cnt==2> g-bg-white  g-color-bu-blue  <#else>   g-color-white g-bg-bu-blue </#if>" href="#"></a> 
139                        </div> 
140                    </#if> 
141                      </article> 
142 
143                      <!-- End Blog Grid Overlap Blocks --> 
144                    </div> 
145 
146 
147 
148                 <div class="asset-abstract"> 
149                    <div class="pull-right"> 
150                        <@getPrintIcon /> 
151 
152                        <@getFlagsIcon /> 
153 
154                        <@getEditIcon /> 
155                    </div> 
156                </div> 
157 
158                </#list> 
159 
160        </div> 
161    </div> 
162</section> 
163<#macro getDiscussion> 
164<#if getterUtil.getBoolean(enableComments) && assetRenderer.isCommentable()> 
165<br /> 
166 
167<#assign discussionURL = renderResponse.createActionURL() /> 
168 
169${discussionURL.setParameter("javax.portlet.action", "invokeTaglibDiscussion")} 
170 
171<@liferay_comment["discussion"] 
172className=entry.getClassName() 
173classPK=entry.getClassPK() 
174formAction=discussionURL?string 
175formName="fm" + entry.getClassPK() 
176ratingsEnabled=getterUtil.getBoolean(enableCommentRatings) 
177redirect=currentURL 
178userId=assetRenderer.getUserId() 
179/> 
180</#if> 
181</#macro> 
182 
183<#macro getEditIcon> 
184<#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
185<#assign redirectURL = renderResponse.createRenderURL() /> 
186 
187${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 
188${redirectURL.setWindowState("pop_up")} 
189 
190<#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" /> 
191 
192<#if validator.isNotNull(editPortletURL)> 
193<#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) /> 
194 
195<@liferay_ui["icon"] 
196cssClass="icon-monospaced visible-interaction" 
197icon="pencil" 
198markupView="lexicon" 
199message=title 
200url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" 
201/> 
202</#if> 
203</#if> 
204</#macro> 
205 
206<#macro getFlagsIcon> 
207<#if getterUtil.getBoolean(enableFlags)> 
208<@liferay_flags["flags"] 
209className=entry.getClassName() 
210classPK=entry.getClassPK() 
211contentTitle=entry.getTitle(locale) 
212label=false 
213reportedUserId=entry.getUserId() 
214/> 
215</#if> 
216</#macro> 
217 
218<#macro getMetadataField 
219fieldName 
220
221<#if stringUtil.split(metadataFields)?seq_contains(fieldName)> 
222<span class="metadata-entry metadata-${fieldName}"> 
223    <#assign dateFormat = "dd MMM yyyy" /> 
224 
225    <#if stringUtil.equals(fieldName, "author")> 
226    <@liferay.language key="by" /> ${htmlUtil.escape(portalUtil.getUserName(assetRenderer.getUserId(), assetRenderer.getUserName()))} 
227    <#elseif stringUtil.equals(fieldName, "categories")> 
228    <@liferay_asset["asset-categories-summary"] 
229    className=entry.getClassName() 
230    classPK=entry.getClassPK() 
231    portletURL=renderResponse.createRenderURL() 
232    /> 
233 
234 
235    <#elseif stringUtil.equals(fieldName, "create-date")> 
236    ${dateUtil.getDate(entry.getCreateDate(), dateFormat, locale)} 
237    <#elseif stringUtil.equals(fieldName, "expiration-date")> 
238    ${dateUtil.getDate(entry.getExpirationDate(), dateFormat, locale)} 
239    <#elseif stringUtil.equals(fieldName, "modified-date")> 
240    ${dateUtil.getDate(entry.getModifiedDate(), dateFormat, locale)} 
241    <#elseif stringUtil.equals(fieldName, "priority")> 
242    ${entry.getPriority()} 
243    <#elseif stringUtil.equals(fieldName, "publish-date")> 
244    ${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)} 
245    <#elseif stringUtil.equals(fieldName, "tags")> 
246    <@liferay_asset["asset-tags-summary"] 
247    className=entry.getClassName() 
248    classPK=entry.getClassPK() 
249    portletURL=renderResponse.createRenderURL() 
250    /> 
251    <#elseif stringUtil.equals(fieldName, "view-count")> 
252    ${entry.getViewCount()} <@liferay.language key="views" /> 
253    </#if> 
254</span> 
255</#if> 
256</#macro> 
257 
258<#macro getPrintIcon> 
259<#if getterUtil.getBoolean(enablePrint)> 
260<#assign printURL = renderResponse.createRenderURL() /> 
261 
262${printURL.setParameter("mvcPath", "/view_content.jsp")} 
263${printURL.setParameter("assetEntryId", entry.getEntryId()?string)} 
264${printURL.setParameter("viewMode", "print")} 
265${printURL.setParameter("type", entry.getAssetRendererFactory().getType())} 
266 
267<#if assetRenderer.getUrlTitle()?? && validator.isNotNull(assetRenderer.getUrlTitle())> 
268<#if assetRenderer.getGroupId() != themeDisplay.getScopeGroupId()> 
269${printURL.setParameter("groupId", assetRenderer.getGroupId()?string)} 
270</#if> 
271 
272${printURL.setParameter("urlTitle", assetRenderer.getUrlTitle())} 
273</#if> 
274 
275${printURL.setWindowState("pop_up")} 
276 
277<@liferay_ui["icon"] 
278iconCssClass="icon-print" 
279message="print" 
280url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "printAsset', title: '" + languageUtil.format(locale, "print-x-x", ["hide-accessible", entryTitle], false) + "', uri: '" + htmlUtil.escapeURL(printURL.toString()) + "'});" 
281/> 
282</#if> 
283</#macro> 
284 
285<#macro getRatings> 
286<#if getterUtil.getBoolean(enableRatings) && assetRenderer.isRatable()> 
287<div class="asset-ratings"> 
288    <@liferay_ui["ratings"] 
289    className=entry.getClassName() 
290    classPK=entry.getClassPK() 
291    /> 
292</div> 
293</#if> 
294</#macro> 
295 
296<#macro getRelatedAssets> 
297<#if getterUtil.getBoolean(enableRelatedAssets)> 
298<@liferay_asset["asset-links"] 
299assetEntryId=entry.getEntryId() 
300viewInContext=!stringUtil.equals(assetLinkBehavior, "showFullContent") 
301/> 
302</#if> 
303</#macro> 
304 
305<#macro getSocialBookmarks> 
306<@liferay_social_bookmarks["bookmarks"] 
307className=entry.getClassName() 
308classPK=entry.getClassPK() 
309displayStyle="${socialBookmarksDisplayStyle}" 
310target="_blank" 
311title=entry.getTitle(locale) 
312url=viewURL 
313/> 
314</#macro> 
315 
316<style> 
317h2.portlet-title-text { 
318    display: none; 
319
320 
321@media screen and  (max-width: 574px) { 
322    .container.w-75 { 
323        width: 100% !important; 
324        padding: 0 !important; 
325
326    .p-row{ 
327        padding-left:0 !important; 
328        padding-right:0 !important; 
329
330    .new-te{ 
331        overflow: hidden !important; 
332        height: 145px !important; 
333
334    .des-tex{ 
335        display: none !important; 
336
337
338 
339.g-bg-bu-blue{ 
340    background: #00265b; 
341
342.rounded-bu{ 
343    border-radius: 25px; 
344
345 
346.g-color-bu-blue{ 
347    color: #00265b; 
348
349 
350</style>