Confluence に XML バックアップをリストアしたときの "Incorrect string value" エラー

お困りですか?

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

コミュニティに質問

プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

問題

XML バックアップを Confluence にリストアしようとしたときに、プロセスが停止してエラーが表示される。

The following appears in the atlassian-confluence.log

logExceptions Incorrect string value: '\xF0\x9F\x98\x80</...' for column 'BODY' at row 1

または

Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8D\xBA  ...' for column 'BODY' at row 1
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)

または

An invalid XML character (Unicode: 0xffff) was found in the CDATA section

原因

XML に上述の例の 4 バイトの Unicode 文字のような無効な文字が含まれており、その文字に使用中のデータベースとの互換性がない。この無効な文字の原因は、MySQL のこちらのバグです。しかしながら、Confluence での 4 バイトの UTF-8 文字の処理を改善する旨の改善リクエストがあります。

  • CONF-18509 - 課題詳細を取得中... ステータス

Confluence について、0xFFFF エラーに関連して起票されているバグもあります。

回避策

データベースから無効な文字を削除します。

  1. atlassian-xml-cleaner-0.1.jar をダウンロードします。
  2. コマンド プロンプトを開き、コンピューター上で XML または ZIP のバックアップ ファイルを見つけます。ZIP ファイル内にある場合はそれが展開されていることを確認します。この例では entities.xml を使います。
  3. 次のようにクリーナーを実行します。

    $ java -jar atlassian-xml-cleaner-0.1.jar entities.xml > entities-clean.xml

    (info) Sometimes the invalid characters can also exist in the Plugin Data which located in the activeObjectsBackupRestoreProvider.pdata file that needs to be cleaned using the cleaner as well (file is included the zip file however sometimes not visible before extracting the zip file). 

  4. 無効な文字が削除された entities-clean.xml が、entities.xml のコピーとして作成されます。 

  5. Copy the entities-clean.xml file into another directory, rename it back to entities.xml and create a new ZIP with the entities.xml file.

 Note: The zip file should contain the Attachments folder as well. If this folder is not included the attachments will show up as broken links or broken images.  



新しい ZIP ファイルをインポートします。

Linux サーバーをご利用の場合、次のコマンドを利用します。

# this will recreate entities.xml in the current directory:
unzip <path>/Confluence-backup.zip entities.xml

# fix the entities file, saving its output to a new file (entities-clean.xml):
java -jar atlassian-xml-cleaner-0.1.jar entities.xml > entities-clean.xml

# rename the original entities file
mv entities.xml entities-original.xml

# rename the fixed entities file to the expected name
mv entities-clean.xml entities.xml

# update the zip file with the new entities.xml file
zip -u <path>/Confluence-backup.zip entities.xml

(info) 参考:  

影響を受ける文字として 0xffff が表示されるエラーを確認している場合、ファイルの修正にこの perl コマンドを使います。

perl -i -pe 's/\xef\xbf\xbf//g' entities.xml

0xfffe のエラーの場合は次の perl コマンドを使います。

perl -i -pe 's/\xef\xbf\xbe//g' entities.xml

Windows をご利用で、上述の Perl コマンドが動作しない場合、問題を修正するために次の Power Shell スクリプトを利用できます。

$yourfile = "PATH_TO_THE_XML\entities.xml"
$outputfile = "PATH_TO_SAVE_NEW_XML\entities_clean.xml"
get-content -path $yourfile | out-file $outputfile -encoding utf8

説明 XML バックアップを Confluence にリストアしようとしたときに、プロセスが停止してエラーが返される。
製品Confluence
プラットフォームServer
最終更新日 2023 年 11 月 21 日

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

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