Author: vmassol
Date: 2008-01-25 10:03:25 +0100 (Fri, 25 Jan 2008)
New Revision: 7077
Modified:
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R4359XWIKI1459Migrator.java
Log:
XWIKI-2034: Parse error (encountered EOF) while migrating the database
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
2008-01-24 23:15:52 UTC (rev 7076)
+++
xwiki-platform/core/branches/xwiki-core-1.2/xwiki-core/src/main/java/com/xpn/xwiki/store/migration/hibernate/R4359XWIKI1459Migrator.java
2008-01-25 09:03:25 UTC (rev 7077)
@@ -98,7 +98,7 @@
Transaction originalTransaction =
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).getTransaction(context);
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).setSession(null,
context);
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).setTransaction(null,
context);
- PreparedStatement deleleteStatement =
session.connection().prepareStatement("update xwikidoc set XWD_ARCHIVE=null
where XWD_ID=?");
+ PreparedStatement deleteStatement =
session.connection().prepareStatement("update xwikidoc set XWD_ARCHIVE=null
where XWD_ID=?");
while (rs.next()) {
if (logger.isInfoEnabled()) {
@@ -106,13 +106,20 @@
}
long docId = Long.parseLong(rs.getString(1));
String sArchive = rs.getString(2);
- XWikiDocumentArchive docArchive = new
XWikiDocumentArchive(docId);
- docArchive.setArchive(sArchive);
-
context.getWiki().getVersioningStore().saveXWikiDocArchive(docArchive, true,
context);
- deleleteStatement.setLong(1, docId);
- deleleteStatement.executeUpdate();
+
+ // In some weird cases it can happen that the
XWD_ARCHIVE field is empty (that shouldn't happen but we've seen it happening).
+ // In this case just ignore the archive...
+ if (sArchive.trim().length() != 0) {
+ XWikiDocumentArchive docArchive = new
XWikiDocumentArchive(docId);
+ docArchive.setArchive(sArchive);
+
context.getWiki().getVersioningStore().saveXWikiDocArchive(docArchive, true,
context);
+ } else {
+ LOG.warn("Empty revision found for document [" +
rs.getString(3) + "]. Ignoring non-fatal error.");
+ }
+ deleteStatement.setLong(1, docId);
+ deleteStatement.executeUpdate();
}
- deleleteStatement.close();
+ deleteStatement.close();
stmt.close();
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).setSession(session,
context);
((XWikiHibernateVersioningStore)context.getWiki().getVersioningStore()).setTransaction(originalTransaction,
context);
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications