Liferay Support does not recommend or endorse specific third-party products over others. Liferay is not responsible for any instructions herein or referenced regarding these products. Any implementation of these principles is the responsibility of the subscriber.
This article describes a known issue when subscribers change the order of their site pages if using this specific Oracle Database 12.1.0.2 version. Although the issue is triggered by changing the order of the site pages, the underlying cause is an Oracle issue (ORA-22275 "invalid lob locator specified" if fix for bug 14044260 present). The reason is that whenever a user changes the page order, it triggers a batch process that tries to update a column of type CLOB in a database table. Other similar actions, which also involve updating a type CLOB column in the database, will also result in the following error.
This issue is specific to Liferay Portal 6.2 EE.
- Create a site that has at least three pages. For example:
- Site name: test site
- Page name: page 1, page 2, page 3
- Navigate to page 1.
- Click the Edit button.
- Click the Look and Feel tab.
- Click the Define a specific look and feel for this page. radio button.
- Scroll to the bottom to view the CSS section. In the text box, enter the contents of a very large CSS file. (You might have to expand the text box. The CSS code should have at least 1500 characters to trigger the error.)
- Click the Save button.
- Verify that the file has been saved.
- Navigate to the third page.
- Drag and drop it to the first position.
At this point, there is a stacktrace error in the console logs:
21:23:11,226 WARN [org.hibernate.util.JDBCExceptionReporter] (http--127.0.0.1-8080-1) SQL Error: 22275, SQLState: 99999 21:23:11,227 ERROR [org.hibernate.util.JDBCExceptionReporter] (http--127.0.0.1-8080-1) ORA-22275: invalid LOB locator specified 21:23:11,227 WARN [org.hibernate.util.JDBCExceptionReporter] (http--127.0.0.1-8080-1) SQL Error: 22275, SQLState: 99999 21:23:11,228 ERROR [org.hibernate.util.JDBCExceptionReporter] (http--127.0.0.1-8080-1) ORA-22275: invalid LOB locator specified 21:23:11,251 INFO 21:23:11,250 ERROR [http--127.0.0.1-8080-1][DefaultTransactionExecutor:93] Application exception overridden by commit exception 21:23:11,251 INFO org.springframework.jdbc.UncategorizedSQLException: Hibernate flushing: could not update: [com.liferay.portal.model.impl.LayoutImpl#21786]; uncategorized SQLException for SQL [update Layout set uuid_=?, groupId=?, companyId=?, userId=?, userName=?, createDate=?, modifiedDate=?, privateLayout=?, layoutId=?, parentLayoutId=?, name=?, title=?, description=?, keywords=?, robots=?, type_=?, typeSettings=?, hidden_=?, friendlyURL=?, iconImage=?, iconImageId=?, themeId=?, colorSchemeId=?, wapThemeId=?, wapColorSchemeId=?, css=?, priority=?, layoutPrototypeUuid=?, layoutPrototypeLinkEnabled=?, sourcePrototypeLayoutUuid=? where plid=?]; SQL state [99999]; error code [22275]; ORA-22275: invalid LOB locator specified 21:23:11,252 INFO ; nested exception is java.sql.BatchUpdateException: ORA-22275: invalid LOB locator specified 21:23:11,253 INFO 21:23:11,253 INFO at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) 21:23:11,253 INFO at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) 21:23:11,253 INFO at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) 21:23:11,253 INFO at org.springframework.orm.hibernate3.HibernateTransactionManager.convertJdbcAccessException(HibernateTransactionManager.java:805) 21:23:11,254 INFO at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:791) 21:23:11,254 INFO at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:664) 21:23:11,254 INFO at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) 21:23:11,254 INFO at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) 21:23:11,255 INFO at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.processCommit(DefaultTransactionExecutor.java:82) 21:23:11,255 INFO at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:70) 21:23:11,255 INFO at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51) 21:23:11,255 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,256 INFO at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 21:23:11,256 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,256 INFO at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 21:23:11,256 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,256 INFO at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 21:23:11,257 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,257 INFO at com.liferay.portal.cache.ThreadLocalCacheAdvice.invoke(ThreadLocalCacheAdvice.java:51) 21:23:11,257 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,257 INFO at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 21:23:11,257 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,258 INFO at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 21:23:11,258 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,258 INFO at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 21:23:11,258 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,258 INFO at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 21:23:11,259 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,259 INFO at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56) 21:23:11,259 INFO at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) 21:23:11,259 INFO at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175) 21:23:11,259 INFO at com.sun.proxy.$Proxy43.updateParentLayoutIdAndPriority(Unknown Source) 21:23:11,260 INFO at com.liferay.portal.service.LayoutServiceUtil.updateParentLayoutIdAndPriority(LayoutServiceUtil.java:1284) 21:23:11,260 INFO at com.liferay.portlet.layoutsadmin.action.UpdateLayoutAction.updateParentLayoutId(UpdateLayoutAction.java:295) 21:23:11,260 INFO at com.liferay.portlet.layoutsadmin.action.UpdateLayoutAction.getJSON(UpdateLayoutAction.java:91) 21:23:11,260 INFO at com.liferay.portal.struts.JSONAction.execute(JSONAction.java:79) 21:23:11,260 INFO at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) 21:23:11,261 INFO at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) 21:23:11,261 INFO at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:169) 21:23:11,261 INFO at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) 21:23:11,261 INFO at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) 21:23:11,261 INFO at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) 21:23:11,261 INFO at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:590) 21:23:11,262 INFO at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:567) 21:23:11,262 INFO at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 21:23:11,262 INFO at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) 21:23:11,262 INFO at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 21:23:11,262 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 21:23:11,263 INFO at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) 21:23:11,263 INFO at com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93) 21:23:11,263 INFO at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) 21:23:11,263 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) 21:23:11,264 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) 21:23:11,264 INFO at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) 21:23:11,264 INFO at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:361) 21:23:11,264 INFO at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) 21:23:11,264 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) 21:23:11,265 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) 21:23:11,265 INFO at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) 21:23:11,265 INFO at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:308) 21:23:11,265 INFO at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) 21:23:11,265 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) 21:23:11,265 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) 21:23:11,266 INFO at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) 21:23:11,266 INFO at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42) 21:23:11,266 INFO at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) 21:23:11,266 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) 21:23:11,266 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) 21:23:11,267 INFO at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) 21:23:11,267 INFO at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:83) 21:23:11,267 INFO at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) 21:23:11,267 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) 21:23:11,267 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) 21:23:11,268 INFO at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) 21:23:11,268 INFO at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88) 21:23:11,268 INFO at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) 21:23:11,268 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) 21:23:11,268 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) 21:23:11,269 INFO at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:169) 21:23:11,269 INFO at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:251) 21:23:11,269 INFO at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) 21:23:11,269 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) 21:23:11,269 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) 21:23:11,270 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185) 21:23:11,270 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96) 21:23:11,270 INFO at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738) 21:23:11,270 INFO at com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:57) 21:23:11,270 INFO at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:59) 21:23:11,271 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204) 21:23:11,271 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109) 21:23:11,271 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165) 21:23:11,271 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96) 21:23:11,271 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165) 21:23:11,272 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96) 21:23:11,272 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:185) 21:23:11,272 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96) 21:23:11,272 INFO at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:117) 21:23:11,273 INFO at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 21:23:11,273 INFO at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 21:23:11,273 INFO at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) 21:23:11,273 INFO at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 21:23:11,273 INFO at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:397) 21:23:11,274 INFO at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) 21:23:11,274 INFO at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) 21:23:11,274 INFO at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) 21:23:11,274 INFO at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 21:23:11,274 INFO at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 21:23:11,275 INFO at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) 21:23:11,275 INFO at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 21:23:11,275 INFO at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) 21:23:11,275 INFO at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) 21:23:11,275 INFO at java.lang.Thread.run(Thread.java:745) 21:23:11,275 INFO Caused by: java.sql.BatchUpdateException: ORA-22275: invalid LOB locator specified 21:23:11,276 INFO 21:23:11,276 INFO at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10345) 21:23:11,276 INFO at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:230) 21:23:11,276 INFO at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:2465) 21:23:11,276 INFO at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70) 21:23:11,276 INFO at org.hibernate.jdbc.BatchingBatcher.addToBatch(BatchingBatcher.java:56) 21:23:11,277 INFO at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2591) 21:23:11,277 INFO at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2495) 21:23:11,277 INFO at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2822) 21:23:11,277 INFO at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:113) 21:23:11,277 INFO at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) 21:23:11,277 INFO at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265) 21:23:11,278 INFO at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185) 21:23:11,278 INFO at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) 21:23:11,278 INFO at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) 21:23:11,278 INFO at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) 21:23:11,278 INFO at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383) 21:23:11,279 INFO at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133) 21:23:11,279 INFO at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656) 21:23:11,279 INFO ... 106 more
Resolution
Status: Resolved
This issue is registered in Oracle as Bug 19703301. The link is only accessible to those who have purchased Oracle Support. Download then apply the patch on the database. Be sure to back up all data first.
If subscribers encounter issues with applying Oracle's patch, they should first contact their database manager and Oracle Support directly.