Liferay Portal 7.4 GA79 and Liferay Commerce 4.0 GA79 Release

We are pleased to announce the release of Liferay Portal 7.4 GA79 and Liferay Commerce 4.0 GA79!


Download options

Liferay Portal and Liferay Commerce share the same Bundle and Docker image.  To get started using either Liferay Portal or Liferay Commerce, choose the best download option suited for your environment below.

Docker image

To use Liferay Portal 7.4 GA79:

docker run -it -p 8080:8080 liferay/portal:

Bundles and other download options

If you are used to binary releases, you can find the Liferay Portal 7.4 GA79 and Liferay Commerce 4.0 GA79 release on the download page.  If you need additional files (for example, the source code, or dependency libraries), visit the release page.

Dependency Management

For development using the Liferay Platform, update Liferay Workspace to use the  latest dependencies, by adding the following line to the build.gradle file:

dependencies {
	compileOnly group: "com.liferay.portal", name: "release.portal.api"

All portal dependencies are now defined with a single declaration. When using an IDE such as Eclipse or IntelliJ all apis are immediately available in autocomplete for immediate use.  

By setting a product info key property it will be possible to update all dependencies to a new version by updating the liferay.workspace.product property in the liferay workspace projects file:

liferay.workspace.product = portal-7.4-ga79

When using an IDE such as Eclipse or IntelliJ all apis are immediately available in autocomplete for immediate use.


Experience Management

Usability improvements in the navigation menu admin application.

Improve the overall usability of the application and also to be able to reorder and adding items. Also improve the accessibility of functionality.

  • Now it is possible to move the items in a navigation menu using the keyboard

  • There is more flexibility when adding items to the navigation menu since you can now select the place where you want to add them to.

Mapping Link to Page field to Fragment

Fragments now provide editable types to map Link to Page field types that can be found in structures.

  • The page creator can map the Link to Page field in a fragment from a content page.

  • The Link to Page field is still mapped through a fragment on a Content Page even after the site being imported.


All documentation for Liferay Portal and Liferay Commerce can now be found on our documentation site:  For more information on upgrading to Liferay Portal 7.4 GA79 see refer to the Upgrade Overview.

Compatibility Matrix

Liferay's general policy is to test Liferay Portal and Liferay Commerce  against newer major releases of operating systems, open source app servers, browsers, and open source databases (we regularly update the bundled upstream libraries to fix bugs or take advantage of new features in the open source we depend on). 

Liferay Portal 7.4 GA79 and Liferay Commerce 4.0 GA79 were tested extensively for use with the following Application/Database Servers: 

Application Server

  • Tomcat 9.0

  • Wildfly 18.0, 23.0


  • MySQL 5.7, 8.0

  • MariaDB 10.2, 10.4, 10.6

  • PostgreSQL 12.x, 13.x, 14.x


  • IBM J9 JDK 8

  • Oracle JDK 8

  • Oracle JDK 11

  • All Java Technical Compatibility Kit (TCK) compliant builds of Java 11 and Java 8

Search Engine Compatibility Matrix

Source Code

Source is available as a zip archive on the release page, or on its home on GitHub. If you're interested in contributing, take a look at our contribution page.

Bug Reporting

If you believe you have encountered a bug in the new release you can report your issue by following the bug reporting instructions.

Getting Support

Support is provided by our awesome community. Please visit helping a developer page for more details on how you can receive support.

Fixes and Known Issues


Since GA77, I have consistently encountered this error when installing Liferay.Has anyone else experienced a similar severe error? liferay java.lang.IllegalStateException: Unable to get default company ID

I'm also facing the same issue while installing in Linux box. Local environment in windows working perfectly. 

I tried a on GA80 bundle on Linux and it seems to work okay for me.  This was on a fresh bundle with no file.  Can you try it with a freshly extracted bundle to see if it still happens to you?

Hi Jamie, Thanks for your support. Now the tomcat server is getting start in Linux box but post the basic configuration it is populating Agree to term of use page it is getting error. Actually unable to pick the default company ID from database. 

Error message :

06-10 17:34:23.168 WARN [http-nio-8088-exec-1] [code_jsp:161] (code="500", msg="", uri-/favicon.ico) lang.IllegalStateException: Unable to get default company ID

at com.liferay.portal.util.PortalInstances.getDefaultCompanyId (Portal [portal-impl

at com.liferay.portal.util.Portal Impl.getDefaultCompanyId ( [portal-impl.jar:?] at com.liferay.portal.kernel.util.PortalUtil.getDefaultCompanyId ( [portal-kernel


at com.liferay.portal.servlet.filters.validhostname.ValidHostNameFilter.doFilterTry (ValidHostNameFilte

at com.liferay.portal.kernel.servlet.filters.invoker. InvokerFilterChain.processDirectCallFilter (Invoke at com.liferay.portal.kernel.servlet.filters.invoker. InvokerFilterChain.doFilter (InvokerFilterChain.jav


at com.liferay.portal.kernel.servlet.filters.invoker. InvokerFilter.doFilter ( - at com.liferay.shielded.container.internal.proxy.FilterWrapper.doFilter ( -[


at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( - at org.apache.catalina.core.ApplicationFilterChain.doFilter ( - [catalina


at org.apache.catalina.core.StandardWrapperValve.invoke( -[catalina.jar:9 at org.apache.catalina.core.StandardContextValve.invoke( -[catalina.jar:9. ]

at org.apache.catalina.authenticator.AuthenticatorBase.invoke ( -[catalina.ja at org.apache.catalina.core.StandardHostValve.invoke ( [catalina.jar:9.0.75

at org.apache.catalina.valves.ErrorReportValve.invoke ( [catalina.jar:9.0.75] at org.apache.catalina.core.StandardEngineValve.invoke ( [catalina.jar:9.0.7

at org.apache.catalina.connector. CoyoteAdapter.service ( [catalina.jar:9.0.75] at org.apache.coyote.http11.Http11Processor.service ( [tomcat-coyote.jar:9.0.75

at org.apache.coyote.AbstractProcessorLight.process ( [tomcat-coyote.jar


at org.apache.coyote.AbstractProtocol$ConnectionHandler.process ( [tomcat-coyo at$Socket Processor.doRun ( [tomcat-coyote.j

at (Socket [tomcat-coyote.jar:9 at org.apache.tomcat.util.threads, ThreadPoolExecutor.runWorker ( [tomcat-ut

at org.apache.tomcat.util.threads.ThreadPoolExecutor$ ( [tomcat-ut at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable, run ( [tomcat-util.jar

at [?:1.8.0_121)

Hi Gokul,

We are recieving reports of others having the issue here:  Our engineering team is aware of the issue and are working on fixing it.  In the meantime it sounds like using GA76 is a known work around until the issue can be addressed.

Is this already fixed? I can't upgrade to any version above 77.

I always get the error 

java.lang.IllegalStateException: Unable to get default company ID         at com.liferay.portal.kernel.instance.PortalInstancePool.getDefaultCompanyId( ~[portal-kernel.jar:?]         at com.liferay.portal.util.PortalInstances.getDefaultCompanyId( ~[portal-impl.jar:?]         at com.liferay.portal.util.PortalImpl.getDefaultCompanyId( ~[portal-impl.jar:?]         at com.liferay.portal.kernel.util.PortalUtil.getDefaultCompanyId( ~[portal-kernel.jar:?]         at com.liferay.portal.servlet.filters.validhostname.ValidHostNameFilter.doFilterTry( ~[portal-impl.jar: ?]         at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter( ~[port al-kernel.jar:?]         at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter( ~[portal-kernel.jar:?]         at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter( ~[portal-kernel.jar:?]         at com.liferay.shielded.container.internal.proxy.FilterWrapper.doFilter( ~[com.liferay.shielded.container.imp l.jar:?]         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ~[catalina.jar:9.0.75]         at org.apache.catalina.core.ApplicationFilterChain.doFilter( ~[catalina.jar:9.0.75]         at org.apache.catalina.core.StandardWrapperValve.invoke( ~[catalina.jar:9.0.75]         at org.apache.catalina.core.StandardContextValve.invoke( ~[catalina.jar:9.0.75]         at org.apache.catalina.authenticator.AuthenticatorBase.invoke( ~[catalina.jar:9.0.75]         at org.apache.catalina.core.StandardHostValve.invoke( [catalina.jar:9.0.75]         at org.apache.catalina.valves.ErrorReportValve.invoke( [catalina.jar:9.0.75]         at org.apache.catalina.core.StandardEngineValve.invoke( [catalina.jar:9.0.75]         at org.apache.catalina.connector.CoyoteAdapter.service( [catalina.jar:9.0.75]

at org.apache.coyote.http11.Http11Processor.service( [tomcat-coyote.jar:9.0.75]         at org.apache.coyote.AbstractProcessorLight.process( [tomcat-coyote.jar:9.0.75]         at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( [tomcat-coyote.jar:9.0.75]         at$SocketProcessor.doRun( [tomcat-coyote.jar:9.0.75]         at [tomcat-coyote.jar:9.0.75]         at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( [tomcat-util.jar:9.0.75]         at org.apache.tomcat.util.threads.ThreadPoolExecutor$ [tomcat-util.jar:9.0.75]         at org.apache.tomcat.util.threads.TaskThread$ [tomcat-util.jar:9.0.75]         at [?:?]