2013/4/22 Isamu Mogi <[email protected]>

> 茂木です。
>
> 取り急ぎ、原因がわかったのでパッチ書きました。→
>
> https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=8e5834947e652d6962e620a192f7d7d959e4cfea
>
> 原因はsc/source/filter/orcus/xmlcontext.cxxの160行目付近です。
>
> ScOrcusFiltersImpl::toSystemPath(maPath);で、パスをutf-8に変換しています
> が、Windowsはutf-8のパスを解釈できません。そのため、直後のファイルを読み
> 込んでいる箇所である、orcus::load_file_content(path, aStrm);が、ファイル
> が見つからない旨の例外を投げ、それを誰もキャッチしていなかったのがクラッ
> シュの原因のようです。この修正で再現しなくなりました。
>

おお! 素晴らしい解析です。確かに数週間前にmasterでliborcusのバージョンアップをした時に以下の変更をしたのを思い出しました。

https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=6374df20c2a8378209cce21c0e9689e65b8bd9a2;hp=50d044d59ac27781932e6f15549f730d693be56e

これによる利点はと言うと、まず第一にtoSystemPathを使わずに、ファイルURLをそのまま使うことが出来るということと、後はorcus::load_file_contentをつかわずucbを使うことにより、例えばsshや、ftp、はたまたcmsのような特殊なファイルシステムからの読み込みも可能になる、と言う点です。
# ucbではそれらを扱っているので

ということは、このコミットがバグを直したと見てよさそうですね。取り急ぎこのコミットを4.0のブランチへバックポートするよう配慮してみます。

いや茂木さん有難うございました。助かります。

吉田
-- 
Unsubscribe instructions: E-mail to [email protected]
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/discuss/
All messages sent to this list will be publicly archived and cannot be deleted

メールによる返信