Capability

Development and Tooling

Liferay offers a comprehensive toolkit to extend or customize your digital experience. Build applications quickly with low-code/no-code features like Objects, or leverage developer tools like Liferay Workspace and Blade CLI for further customizations.

For users on PaaS or running Self-Hosted, Liferay also offers tools deploying customizations.

Feature
Deployment Approach
Error during file indexing: ClassNotFoundException: org.bouncycastle.asn1.ASN1Encodable
Issue When indexing files, the process fails (terminates abruptly) and the following information is printed in the logs: org.bouncycastle.asn1.ASN1Encodable cannot be found by...
How to change the . (dot) characters to hyphens (-) in Web Content article friendly URLs?
Issue We have several Web Content articles where the friendly URL contains some dots and we would like to have hyphens instead. Changing them manually is not only hard but we would also like to implement a workflow to...
globalThis.process?.argv object contains an array set
Issue The globalThis.process?.argv object contains an array set in DXP 7.3, but in the latest release 2024.Q2.6, this is null or undefined.  Environment Liferay DXP [all versions] Resolution In this scenario,...
Group Memberships are being removed after signing in via SAML after upgrading to 2024.Q2 from 2023.Q4
Issue We have observed that some users's existing group memberships are missing after they login via SAML(Okta). Environment Quarterly Release 2024.Q2 Resolution This is due to the change reported in these articles:...
The account email address is set to null
Issue When updating a custom field at the account entry, the account email address is set to null Steps to reproduce: Create a new Account, “Account”. Attach an e-mail address “abc@liferay.com” to the account entry...
The PageId changes each time the page is edited causing the category filter value to change each time.
Issue We are building a page which displays a Collection of “How to” Web Contents using a variety of Categories. As an alternative to using the Collection Filter to display the content of one category, we would like to...
When using 3G, "Related Asset" is not selected immediately
Issue There has been an observed delay when trying to select a "Related Asset" within "Web Content" when using 3G internet speed. Instead of the "Related Asset" being selected immediately, there's a delay and other...
Native OS memory, allocated to JVM threads, does not get released completely
Issue The memory used by the Liferay Docker container slowly, but steadily increases, until either the pod goes out-of-memory, or the pod alerts trigger a kill of the pod. Environment Liferay Quarterly releases...
Is it expected for fragments using the getContent() selector to display non-alphanumeric characters from HTML, or XML, for Journal Article content?
Issue When creating a Fragment with an itemSelector field configured to select a Journal Article, the displayed content includes unexpected characters, such as "]]>" at the end. This issue does not occur when the...
Accessibility issues with the Underline button in CKEditor
Issue When using CKEditor, there is an underline button available. If you use it, the text will be inserted within u elements. This fact causes some HTML validators to report an accessibility issue based on WCAG SC...
Custom Themes are no longer shown as Site Templates in DXP 7.4
Issue In Liferay DXP 7.3, custom themes were seen under Site Templates Pop Up (Control Panel > Site > Choosing the template). However, in Liferay DXP 7.4, custom themes do not come under Site Templates, and...
Language Keys are processed as Literal Text in custom MVC Portlets
Issue When creating a MVC Portlet that leverages language keys, language key output is presenting as the literal text, rather than the key value For example:  Language key in view.jsp: <b><liferay-ui:message...
Document and Media Storage Breakdown on cloud shell
Issue There is an issue with the breakdown of document_library storage. In certain cases, document media occupies a larger amount of space, causing the cloud shell to become unresponsive and consume excessive CPU...
Vulnerability: Robots.txt file must not be accessed and should be blocked
Issue Encountered a vulnerability issue with the robots.txt file and the vulnerability test suggests preventing the robots.txt file from being accessed. Environment Liferay DXP 7.3 Liferay DXP 7.4...
Content Pages and Fragments are not getting indexed after Saving
Issue We are using Remote Elasticsearch, and noticed that it does not index content page or fragment on save Once we add or update a HTML fragment on a content page, the page will not be returned, when searching...
Repeatable Form Fields take more than One-Click to Repeat
Issue When adding repeatable fields in a form, the form fields take more than one click to repeat   Environment Liferay 2024.Q1 Resolution This behavior is intended and introduced as a result of LPD-1720 When rapidly...
Check plan MALUs (Monthly Active Logged in Users) in Liferay SaaS
Note: please note that Liferay has renamed its Liferay Experience Could offerings to Liferay SaaS (formerly LXC) and Liferay PaaS (formerly LXC-SM). Issue A client of Liferay SaaS needs to check the metrics for MALUs...
Builds fail due to org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker$RateLimitCheckerAdapter checkRateLimit
Issue Jenkins is failing while creating the DXP cloud build and the following errors are observed: ERROR: org.jenkinsci.plugins.github_branch_source.ApiRateLimitChecker$RateLimitCheckerAdapter...
Error "Portlet is temporarily unavailable" appears for Category Facet widget
Issue When an invalid ID is passed as the value of the category field in the URL, all the widget shows the error "Portlet is temporarily unavailable". As a result, all the widgets should show the message "No...
Calling UserImporter in com.liferay.portal.security.exportimport.api throws unsatisfied references error.
Issue On 7.3 we are using this class to Import users from a SamlProvider: com.liferay.portal.security.exportimport.UserImporter.importUser(long companyId, String emailAddress, String screenName) We call the service by...