バグ発見

先日のJavaで文字実体参照と数値文字参照をデコード(?)する - ttmmrr(@o_tmr)の日記に、バグがありました。

CharRefDecode.decode("\"); // 文字コード5c(16進数)は「\」

CharRefDecode.decode("\"); // 文字コード92(10進数)も「\」

で、落ちます。

原因は、Matcher#appendReplacementの第二引数をクォートしてないので、「\」に続く文字がないので。
「\」以外に、「$」でも同様。