-
Type:
Bug
-
Status: Closed
-
Resolution: Fixed
-
Affects Version/s: 6.1.X EE, 6.2.X EE, 7.0.0 M4
-
Fix Version/s: 7.0.0 M4
-
Component/s: Portal Services, Portal Services > Templates Engine
-
Labels:
-
Story Points:2
-
Fix Priority:4
-
Git Pull Request:
Scenario
There are multiple portlets embedded to difference pages by using layout templates. In this example Asset Publisher and Search portlets are used.
Embedded AP:
$velocityPortletPreferences.setValue("showContextLink", "false") ... $theme.runtime("101_INSTANCE_01", "", $velocityPortletPreferences.toString()) ... #set ($VOID = $velocityPortletPreferences.reset())
Embedded Search:
$velocityPortletPreferences.setValue("primarySearch", "com.liferay.portal.search.PortalOpenSearchImpl") ... $theme.runtime("3_INSTANCE_01", "", $velocityPortletPreferences.toString()) ... #set ($VOID = $velocityPortletPreferences.reset())
Phenomenon
Under heavy load the stored portlet preferences of these embedded portlets may contain foreign settings, that is, for 101_INSTANCE_01 preference primarySearch appears and for 3_INSTANCE_01 preference showContextLink appears.
Analyses
This happens, because TemplatePortletPreferences is shared across requests and it isn't thread-safe.
Steps to reproduce
No manual steps have been found yet to reproduce. In order to be able to verify that the issue had been fixed, a unit test will be provided.