-
Bug
-
Resolution: Fixed
-
High
-
3.4, 5.5, 5.7, 5.10.8, 6.0.3
-
Oracle
-
10
-
Severity 3 - Minor
-
23
-
In Oracle, if a user belongs to more than 1000 groups and visits the dashboard, the following error occurs:
-- url: /confluence/pages/viewpage.action | page: 69468465 | userName: user | referer: Confluence URL | action: viewpage org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: Could not execute query; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000 Caused by: java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:813) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049) at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:854) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3415) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93) at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:89) at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:880) at net.sf.hibernate.loader.Loader.doQuery(Loader.java:273) at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:138) at net.sf.hibernate.loader.Loader.doList(Loader.java:1063) at net.sf.hibernate.loader.Loader.list(Loader.java:1048) at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1552) at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:49) at net.sf.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:550) at com.atlassian.confluence.spaces.persistence.dao.hibernate.HibernateSpaceDao$7.doInHibernate(HibernateSpaceDao.java:455) at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:370) at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:337) at com.atlassian.confluence.spaces.persistence.dao.hibernate.HibernateSpaceDao.countSpaces(HibernateSpaceDao.java:447) at com.atlassian.confluence.spaces.DefaultSpaceManager$1.getAvailableSize(DefaultSpaceManager.java:799) at com.atlassian.confluence.core.DefaultListBuilder.getAvailableSize(DefaultListBuilder.java:51) at com.atlassian.confluence.plugins.macros.dashboard.DashboardMacroSupport.getLabelsForPermittedSpaces(DashboardMacroSupport.java:216) at com.atlassian.confluence.plugins.macros.dashboard.DashboardMacroSupport.getViewableTeamLabels(DashboardMacroSupport.java:201)
The problem is that com.atlassian.confluence.spaces.persistence.dao.hibernate.HibernateSpacesQueryBuilder specifies the full list of groups the user is a member of in the "in" clause. It's unexpected for a user to be in more than 1000 groups, but it can happen, particularly if Confluence is delegating user management to a large LDAP server.
- relates to
-
CONFSERVER-22985 Space directory fails to load: ORA-01795: maximum number of expressions in a list is 1000
-
- Closed
-
- mentioned in
-
Page Failed to load
A fix for this issue is now available for Confluence Server customers.
Upgrade now or check out the Release Notes to see what other issues are resolved.