XML import fails due to error: not-null property references a null or transient value

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

問題

XML Import fails and the following appears in the atlassian-confluence.log:

2014-09-02 22:56:25,374 ERROR [Long running task: Importing data] [confluence.importexport.actions.ImportLongRunningTask] runInternal Failure during import
 -- referer: http://hostname:8090/setup/setup-restore-local.action | url: /setup/longrunningtaskxml.action | userName: anonymous | action: longrunningtaskxml
com.atlassian.confluence.importexport.ImportExportException: com.atlassian.confluence.importexport.ImportExportException: Unable to complete import: Error while importing backup: not-null property references a null or transient value: com.atlassian.confluence.links.OutgoingLink.sourceContent
	at com.atlassian.confluence.importexport.xmlimport.BackupImporter.importEntities(BackupImporter.java:430)
	at com.atlassian.confluence.importexport.xmlimport.BackupImporter.importEverything(BackupImporter.java:388)
	at com.atlassian.confluence.importexport.xmlimport.FileBackupImporter.importEverything(FileBackupImporter.java:150)
	at com.atlassian.confluence.importexport.xmlimport.BackupImporter$1.doInTransactionWithoutResult(BackupImporter.java:259)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
	at com.atlassian.confluence.importexport.xmlimport.RestorePluginStateStoreTransactionCallbackDecorator.doInTransaction(RestorePluginStateStoreTransactionCallbackDecorator.java:50)
	at com.atlassian.confluence.importexport.xmlimport.RestoreBandanaValuesTransactionCallbackDecorator.doInTransaction(RestoreBandanaValuesTransactionCallbackDecorator.java:50)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at com.atlassian.confluence.importexport.xmlimport.BackupImporter.doImportInternal(BackupImporter.java:211)
	at com.atlassian.confluence.importexport.Importer.doImport(Importer.java:77)
	at com.atlassian.confluence.importexport.DefaultImportExportManager.performImportInternal(DefaultImportExportManager.java:83)
	at com.atlassian.confluence.importexport.DefaultImportExportManager.performImport(DefaultImportExportManager.java:73)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at com.sun.proxy.$Proxy135.performImport(Unknown Source)
	at com.atlassian.confluence.importexport.actions.ImportLongRunningTask.runInternal(ImportLongRunningTask.java:95)
	at com.atlassian.confluence.util.longrunning.ConfluenceAbstractLongRunningTask.run(ConfluenceAbstractLongRunningTask.java:27)
	at com.atlassian.confluence.util.longrunning.ManagedTask.run(ManagedTask.java:35)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: com.atlassian.confluence.importexport.ImportExportException: Unable to complete import: Error while importing backup: not-null property references a null or transient value: com.atlassian.confluence.links.OutgoingLink.sourceContent
	at com.atlassian.confluence.importexport.xmlimport.DefaultXmlImporter.doImport(DefaultXmlImporter.java:77)
	at com.atlassian.confluence.importexport.xmlimport.BackupImporter.importEntities(BackupImporter.java:420)
	... 31 more
Caused by: org.xml.sax.SAXException: Error while importing backup: not-null property references a null or transient value: com.atlassian.confluence.links.OutgoingLink.sourceContent
net.sf.hibernate.PropertyValueException: not-null property references a null or transient value: com.atlassian.confluence.links.OutgoingLink.sourceContent
	at com.atlassian.confluence.importexport.xmlimport.parser.BackupParser.endElement(BackupParser.java:55)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at com.atlassian.security.xml.RestrictedXMLReader.parse(RestrictedXMLReader.java:103)
	at com.atlassian.confluence.importexport.xmlimport.DefaultXmlImporter.parseBackup(DefaultXmlImporter.java:110)
	at com.atlassian.confluence.importexport.xmlimport.DefaultXmlImporter.doImport(DefaultXmlImporter.java:61)
	... 32 more
Caused by: net.sf.hibernate.PropertyValueException: not-null property references a null or transient value: com.atlassian.confluence.links.OutgoingLink.sourceContent
	at net.sf.hibernate.impl.SessionImpl.checkNullability(SessionImpl.java:1302)
	at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:954)
	at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:883)
	at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:837)
	at com.atlassian.confluence.importexport.xmlimport.ImportProcessorContext.saveObject(ImportProcessorContext.java:289)
	at com.atlassian.confluence.importexport.xmlimport.persister.ReflectiveObjectPersister.persist(ReflectiveObjectPersister.java:207)
	at com.atlassian.confluence.importexport.xmlimport.DefaultImportProcessor.persist(DefaultImportProcessor.java:47)
	at com.atlassian.confluence.importexport.xmlimport.DefaultImportProcessor.processObject(DefaultImportProcessor.java:37)

原因

Values in the database that should have content referencing them have null values instead.

ソリューション

Reviewing the stack trace will show where the error is coming from. In the example above it's com.atlassian.confluence.links.OutgoingLink.sourceContent which is the LINKS table.

 

  1. Run the following queries against the Confluence database from which the XML back-up was generated:

    SELECT * FROM LINKS WHERE DESTPAGETITLE = '' OR DESTPAGETITLE IS NULL;
    SELECT * FROM LINKS WHERE DESTSPACEKEY = '' OR DESTSPACEKEY IS NULL;
  2. If any of the above queries returned results, then backup your Confluence database.

    データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。

  3. Run the following delete statements:

    DELETE FROM LINKS WHERE DESTPAGETITLE = '' OR DESTPAGETITLE IS NULL;
    DELETE FROM LINKS WHERE DESTSPACEKEY = '' OR DESTSPACEKEY IS NULL;
  4. Generate a new XML export.

  5. Import the new XML into Confluence.

 

最終更新日 2017 年 4 月 23 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.