Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-27600

Attempting to import a space backup that doesn't include comments when a comment has been liked results in "not-null property references a null or transient value: com.atlassian.confluence.like.LikeEntity.content" error

    XMLWordPrintable

Details

    Description

      NOTE: This bug report is for Confluence Server. Using Confluence Cloud? See the corresponding bug report.

      Steps to reproduce:
      1. Like a comment on any page in a space.
      2. Make a space or full site backup that doesn't include comments.
      3. Try to import that backup.

      The full stack trace:

      2012-12-20 09:35:02,382 ERROR [Long running task: Importing data] [confluence.importexport.xmlimport.BackupImporter] importEntities Cannot import the entities:
       -- url: /wiki/admin/importspace/doimportconfluencespace.action | userName: nmason | referer: https://nmason.jira-dev.com/wiki/admin/importspace/importconfluencespace.action | action: doimportconfluencespace
      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.like.LikeEntity.content
        at com.atlassian.confluence.importexport.xmlimport.DefaultXmlImporter.doImport(DefaultXmlImporter.java:71)
        at com.atlassian.confluence.importexport.xmlimport.BackupImporter.importEntities(BackupImporter.java:337)
        at com.atlassian.confluence.importexport.xmlimport.BackupImporter.importEverything(BackupImporter.java:305)
        at com.atlassian.confluence.importexport.xmlimport.FileBackupImporter.importEverything(FileBackupImporter.java:110)
        at com.atlassian.confluence.importexport.xmlimport.BackupImporter$1.doInTransactionWithoutResult(BackupImporter.java:154)
        at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
        at com.atlassian.confluence.importexport.xmlimport.RestorePluginStateStoreTransactionCallbackDecorator.doInTransaction(RestorePluginStateStoreTransactionCallbackDecorator.java:47)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
        at com.atlassian.confluence.importexport.xmlimport.BackupImporter.doImportInternal(BackupImporter.java:147)
        at com.atlassian.confluence.importexport.Importer.doImport(Importer.java:75)
        at com.atlassian.confluence.importexport.DefaultImportExportManager.doImport(DefaultImportExportManager.java:67)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        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 $Proxy89.doImport(Unknown Source)
        at com.atlassian.confluence.importexport.actions.ImportLongRunningTask.runInternal(ImportLongRunningTask.java:81)
        at com.atlassian.confluence.util.longrunning.ConfluenceAbstractLongRunningTask.run(ConfluenceAbstractLongRunningTask.java:26)
        at com.atlassian.confluence.util.longrunning.ManagedTask.run(ManagedTask.java:35)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
      Caused by: net.sf.hibernate.PropertyValueException: not-null property references a null or transient value: com.atlassian.confluence.like.LikeEntity.content
        at com.atlassian.confluence.importexport.xmlimport.parser.BackupParser.endElement(BackupParser.java:53)
        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:103)
        at com.atlassian.confluence.importexport.xmlimport.DefaultXmlImporter.doImport(DefaultXmlImporter.java:55)
        ... 30 more
      Caused by: net.sf.hibernate.PropertyValueException: not-null property references a null or transient value: com.atlassian.confluence.like.LikeEntity.content
        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:269)
        at com.atlassian.confluence.importexport.xmlimport.persister.ReflectiveObjectPersister.persist(ReflectiveObjectPersister.java:142)
        at com.atlassian.confluence.importexport.xmlimport.DefaultImportProcessor.persist(DefaultImportProcessor.java:46)
        at com.atlassian.confluence.importexport.xmlimport.DefaultImportProcessor.processObject(DefaultImportProcessor.java:36)
        at com.atlassian.confluence.importexport.xmlimport.parser.BackupParser.endElement(BackupParser.java:49)
        ... 42 more
      
      Workaround

      Delete all LikeEntity entries from the XML file - this will remove all Likes and will allow the import to continue.

      1. Open the zip file and edit entities.xml
      2. Search for LikeEntity. You will see <object> entries like this:
        <object class="LikeEntity" package="com.atlassian.confluence.like">
        <id name="id">1900546</id>
        <property name="content" class="Comment" package="com.atlassian.confluence.pages">
        <id name="id">1572927</id>
        </property>
        <property name="username">
        <![CDATA[ admin ]]>
        </property>
        <property name="creationDate">2013-01-04 17:28:25.971</property>
        </object>
        
      3. Remove the entire <object> entry, from the opening '<object class = ' up to and including hte '</object>' closing tag
      4. Repeat for all LikeEntity objects found
      5. Reimport the backup.
      6. NB: You may need to clean the half-imported data out first.
        • If it is a space, you can do this by removing the space and then re-importing.
        • If it is a full site backup and you are restoring it as part of the installation, you would be better off cleaning the home directory and running the setup wizard again. Just stop Confluence, empty the contents of the home directory and restart Confluence. This will start the setup wizard again.

      Attachments

        Issue Links

          Activity

            People

              slancashire Steve Lancashire (Inactive)
              nmason Nick Mason
              Votes:
              2 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: