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

XML Exports containing special characters (like an Ellipsis) in Highlighted Inline Comments Increases String Length, causing the XML Import to Fail

    XMLWordPrintable

Details

    Description

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

      Summary

      Whenever a user inserts an ellipsis character (i.e. "…" which is three dots represented as a single character) as content in Confluence, and an inline comment is created from highlighting that content, the resulting Site Export (or Space Export containing comments) will convert the ellipsis to three separate period characters (i.e. 3 "." in a row). Thus, the resulting string in the entities.xml import will be longer in character count than the original string. If the original string was close to 255 characters, the 'converted' string will be greater than 255 characters. This causes subsequent attempts to import this data to fail with the following error:

       ERROR [Long running task: Importing data] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Data truncation: Data too long for column 'STRINGVAL' at row 1

      or this one:

      Caused by: java.sql.BatchUpdateException: Batch entry 2 insert into CONTENTPROPERTIES (PROPERTYNAME, STRINGVAL, LONGVAL, DATEVAL, PROPERTYID) values ('inline-original-selection', 'typedef struct EthrLagGroupCbkEntryData{    EthrLagGroupLagLinkList ethrLagLinkList; /* List of LAG links */    EthrLagMemberSpeed ethrLagMemberSpeed;    EthrManualMacAddress ethrManualMacAddress;    ......    EthrLagSpared16 spareField1;    EthrLagSpared8...', NULL, NULL, XXXX) was aborted

      This error is dependant on the content you are making a comment from.

      Steps to Reproduce

      1. Log in to Confluence and create a new page
      2. Enter the following as text in the page
        typedef struct EthrLagGroupCbkEntryData
        {
            EthrLagGroupLagLinkList ethrLagLinkList; /* List of LAG links */
            EthrLagMemberSpeed ethrLagMemberSpeed;
            EthrManualMacAddress ethrManualMacAddress;
            ……
            EthrLagSpared16 spareField1;
            EthrLagSpared8
        
      3. highlight the content and wait for the inline comment icon to appear
      4. create an inline comment
      5. notice the string length for the highlighted text is less than 255 characters
      6. Perform a space export, selecting custom to include comments
      7. Once the zip is created, open the entities.xml and search for the inline comment
      8. Notice the new content is more than 255 characters
        typedef struct EthrLagGroupCbkEntryData{    EthrLagGroupLagLinkList ethrLagLinkList; /* List of LAG links */    EthrLagMemberSpeed ethrLagMemberSpeed;    EthrManualMacAddress ethrManualMacAddress;    ......    EthrLagSpared16 spareField1;    EthrLagSpared8
      9. This breaks the Space Import since the data column size for STRINGVAL is 255.

      Expected Results

      The export does not add characters to special characters like the ellipsis.

      Notes

      For the error to be replicated in an import, the original string for the highlighted text has to be close to 255 characters. If the string is not close, the conversion will not affect the import as it will remain under 255.

      Workaround

      Before exporting, delete the inline comments which are highlighting text which are close to 255 characters and contain the ellipsis character. Alternatively, you can edit the entities.xml file and shorten the inline comment there to be less than 255 characters.

      Attachments

        Issue Links

          Activity

            People

              lgrzyb lukasz
              ajean Andy J.
              Votes:
              22 Vote for this issue
              Watchers:
              34 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: