diff --git c/xwiki-platform-core/xwiki-platform-oldcore/pom.xml i/xwiki-platform-core/xwiki-platform-oldcore/pom.xml index 1cbaad1..f435bf3 100644 --- c/xwiki-platform-core/xwiki-platform-oldcore/pom.xml +++ i/xwiki-platform-core/xwiki-platform-oldcore/pom.xml @@ -581,6 +581,13 @@ ${project.version} + + + ch.qos.logback + logback-classic + 1.0.0 + + @@ -638,7 +645,6 @@ ${commons.version} test - diff --git c/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/store/migration/hibernate/HibernateDataMigrationManager.java i/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/store/migration/hibernate/HibernateDataMigrationManager.java index 6515849..d6a7ef9 100644 --- c/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/store/migration/hibernate/HibernateDataMigrationManager.java +++ i/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/store/migration/hibernate/HibernateDataMigrationManager.java @@ -29,6 +29,8 @@ import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.Projections; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.xwiki.component.annotation.Component; import org.xwiki.component.manager.ComponentLookupException; @@ -42,6 +44,8 @@ import com.xpn.xwiki.store.migration.DataMigrationException; import com.xpn.xwiki.store.migration.XWikiDBVersion; +import ch.qos.logback.classic.Level; + /** * Migration manager for hibernate store. * @@ -67,6 +71,45 @@ public XWikiHibernateBaseStore getStore() throws DataMigrationException } } + private class HibernateLoggingSuspender + { + private Level hibernateLogLevel; + + /** + * Suspend hibernate logging. + */ + private void suspendHibernateLogging() + { + Logger hibernateLogger = LoggerFactory.getLogger(org.hibernate.util.JDBCExceptionReporter.class); + if (hibernateLogger instanceof ch.qos.logback.classic.Logger) + { + ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) hibernateLogger; + hibernateLogLevel = logger.getLevel(); + if (hibernateLogLevel == Level.OFF) { + hibernateLogLevel = null; + return; + } + logger.setLevel(Level.OFF); + } + } + + /** + * Resume hibernate logging to its previous level. + */ + private void resumeHibernateLogging() + { + if (hibernateLogLevel == null) { + return; + } + + Logger hibernateLogger = LoggerFactory.getLogger(org.hibernate.util.JDBCExceptionReporter.class); + if (hibernateLogger instanceof ch.qos.logback.classic.Logger) + { + ((ch.qos.logback.classic.Logger) hibernateLogger).setLevel(hibernateLogLevel); + } + } + } + @Override public XWikiDBVersion getDBVersionFromDatabase() throws DataMigrationException { @@ -83,6 +126,8 @@ public XWikiDBVersion getDBVersionFromDatabase() throws DataMigrationException store.setSession(null, context); store.setTransaction(null, context); + HibernateLoggingSuspender hibernateLoggingSuspender = new HibernateLoggingSuspender(); + hibernateLoggingSuspender.suspendHibernateLogging(); try { try { ver = store.executeRead(context, true, @@ -127,6 +172,7 @@ public XWikiDBVersion doInHibernate(Session session) throws HibernateException getXWikiContext().getDatabase()), e); } finally { + hibernateLoggingSuspender.resumeHibernateLogging(); store.setSession(originalSession, context); store.setTransaction(originalTransaction, context); }