SQL Errors in the Console When Re-ordering Site Pages on Oracle Database 12.1.0.2

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.

  1. Create a site that has at least three pages. For example:
    • Site name: test site
    • Page name: page 1, page 2, page 3
  2. Navigate to page 1.
  3. Click the Edit button.
  4. Click the Look and Feel tab.
  5. Click the Define a specific look and feel for this page. radio button.
  6. 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.)
  7. Click the Save button.
  8. Verify that the file has been saved.
  9. Navigate to the third page.
  10. 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.

Was this article helpful?
0 out of 0 found this helpful