チケット #342 (closed 不具合: fixed)
横断検索ツールで日本語フレーズで検索してGalaxyへ送信するとGalaxy側でエラーが発生する
報告者: | t-hatakeyama | 担当者: | t-hatakeyama |
---|---|---|---|
優先度: | 現マイルストーンで作業の停滞を招く | マイルストーン: | 平成22年度開発 |
コンポーネント: | Galaxy | バージョン: | |
キーワード: | 関係者: | ||
GanttChart表示: | OFF | 依存TaskNo: | |
開始予定日: | YYYY/MM/DD | 終了予定日: | YYYY/MM/DD |
説明 (最終更新者: t-hatakeyama) (diff)
** 現象
横断検索ツールで日本語フレーズで検索した結果をGalaxyへ送信しようとすると、Galaxy側のツールの実行時に下記のエラーが発生する。
Traceback (most recent call last): File "/home/thata/c/dbcls/dbsearch_env/galaxy-central/lib/galaxy/jobs/runners/local.py", line 55, in run_job job_wrapper.prepare() File "/home/thata/c/dbcls/dbsearch_env/galaxy-central/lib/galaxy/jobs/__init__.py", line 337, in prepare self.tool.exec_before_job( self.queue.app, inp_data, out_data, param_dict ) File "/home/thata/c/dbcls/dbsearch_env/galaxy-central/lib/galaxy/tools/__init__.py", line 1731, in exec_before_job print >> out, '%s\t%s' % ( key, value ) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
** 原因
外部検索ツールから渡されたパラメータをファイルへと書き出す際、パラメータのkeyとvalueのうちのvalueに日本語が含まれる場合、Python文字列なvalueを文字コードasciiでUnicode文字列へ変換しようとしてエラーが発生したもの。
** 対策
keyの値がUnicode文字列でなければvalueのUnicodeへの変換は行わないで済んだので、keyの値がUnicode文字列の場合はPython文字列へ変換することで問題に対応した。
チケットの履歴
Note: チケットについてのヘルプは
TracTickets を参照
して下さい。