mecab-java のテストプログラムを実行したら JVM が落ちてしまうときに試してみる価値のあること

mecab-javaMeCabJAVA から使うためのバインディング
SWIG を使って作られています。

で、その mecab-java を make して make test してみたのですが JVM ごと落ちてしまいます。

% make test
env LD_LIBRARY_PATH=. java test
0.97
太郎は  名詞,一般,*,*,*,*,太郎は,*,*
二      名詞,数,*,*,*,*,二,ニ,*
郎      名詞,一般,*,*,*,*,郎,ロウ,*
に      助詞,格助詞,一般,*,*,*,に,ニ,*
この    連体詞,*,*,*,*,*,この,コノ,*
本      名詞,一般,*,*,*,*,本,ホン,*
を      助詞,格助詞,一般,*,*,*,を,ヲ,*
渡し    動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,*
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,*
。      記号,句点,*,*,*,*,。,。,*
EOS

        BOS/EOS,*,*,*,*,*,*,*,*
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x000000394e47bf0b, pid=6397, tid=1086847296
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.2-b01 mixed mode linux-amd64 )
# Problematic frame:
# C  [libc.so.6+0x7bf0b]  memcpy+0x15b
#
# An error report file with more information is saved as:
# /home/knaka/download/NL/mecab-java-0.97.ORG/hs_err_pid6397.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
make: *** [test] アボートしました

そんなときは、MeCab_wrap.cxx の 701行目の辺りに2行追加するとうまくいくかもしれません。

 700   arg1 = *(mecab_node_t **)&jarg1;
 701   result = (mecab_node_t *) ((arg1)->next);
 702   char work[128] ; // 追加
 703   sprintf(work,"result:%0x\n",result); // 追加
 704   *(mecab_node_t **)&jresult = result;
 705   return jresult;
 706 }


環境

OS : Red Hat Enterprise Linux Client release 5 (Tikanga)
java : jdk1.6.0_11
MeCab : mecab of 0.97
mecab-java : mecab-java-0.97


ではでは