読者です 読者をやめる 読者になる 読者になる

org.seasar.framework.util.SPrintWriterのclose()後のtoString()

[programming]
スポンサーリンク

SPrintWriterが継承しているPrintWriterは、close()で自身が持つwriterにnullを設定しているので、下記のような使い方をするとjava.lang.NullPointerExceptionが発生します。

PrintWriter writer = new SPrintWriter();
writer.write('a');
writer.close();
writer.toString();

MockHttpServletResponseImpl使った単体テストで、サーブレットのレスポンスの出力内容を確認しているのですが、レスポンスを出力時にwriterをcloseしているので、今のままだとレスポンス内容の確認が出来ません。
とりあえずSPrintWriterを更に継承、closeを再定義してwriterにnullが設定されないように回避するしかなさそうです。