Author: sdumitriu
Date: 2007-12-13 18:19:12 +0100 (Thu, 13 Dec 2007)
New Revision: 6372
Modified:
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R4359XWIKI1459Migrator.java
Log:
XWIKI-1951: Archive migration should be performed with one transaction per
document
Fixed. Merged from [EMAIL PROTECTED]
Modified:
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R4359XWIKI1459Migrator.java
===================================================================
---
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R4359XWIKI1459Migrator.java
2007-12-13 17:16:51 UTC (rev 6371)
+++
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R4359XWIKI1459Migrator.java
2007-12-13 17:19:12 UTC (rev 6372)
@@ -23,14 +23,16 @@
import java.sql.SQLException;
import java.sql.Statement;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Session;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.hibernate.Transaction;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
import com.xpn.xwiki.doc.XWikiDocumentArchive;
+import com.xpn.xwiki.store.XWikiHibernateVersioningStore;
import com.xpn.xwiki.store.XWikiHibernateBaseStore.HibernateCallback;
import com.xpn.xwiki.store.migration.XWikiDBVersion;
@@ -92,19 +94,26 @@
// is there easier way to find what column is not
exist?
return null;
}
+ Transaction originalTransaction =
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).getTransaction(context);
+
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).setSession(null,
context);
+
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).setTransaction(null,
context);
+
while (rs.next()) {
if (logger.isInfoEnabled()) {
logger.info("Updating document [" +
rs.getString(3) + "]...");
}
long docId = Long.parseLong(rs.getString(1));
String sArchive = rs.getString(2);
- if (sArchive==null)
+ if (sArchive==null) {
continue;
+ }
XWikiDocumentArchive docArchive = new
XWikiDocumentArchive(docId);
docArchive.setArchive(sArchive);
-
context.getWiki().getVersioningStore().saveXWikiDocArchive(docArchive, false,
context);
+
context.getWiki().getVersioningStore().saveXWikiDocArchive(docArchive, true,
context);
}
stmt.close();
+
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).setSession(session,
context);
+
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).setTransaction(originalTransaction,
context);
} catch (SQLException e) {
throw new XWikiException(XWikiException.MODULE_XWIKI_STORE,
XWikiException.ERROR_XWIKI_STORE_MIGRATION, getName()
+ " migration failed", e);
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications