StreamResult の getter では例外をキャッチすべし

CSVや画像等を出力する際に利用する StreamResult。
HttpServletResponse を直接操作しなくてもいいので便利ですね。
出力処理自体は、java.io.InputStream を返す getter に書くことになります。
しかし、その getter で例外を捕捉していないと、問題発生時に手間取ります。

getter のメソッドを throws Exception として、例外を外部に投げてしまうと、以下のようなIllegalArgumentException が出て、文句を言われます。

java.lang.IllegalArgumentException: Can not find a java.io.InputStream with the name [inputStream] in the invocation stack. Check the tag specified for this action.

inputStream が見つからない?ちゃんと result に定義しているのに・・・。
原因は getter 内部のバグで例外が発生していました。
その結果、OGNL式として定義した inputStream が取得できず、StreamResult で例外が発生していました。getter内部から発生した例外はログ出力などもされず、もみ消されているように見受けられます。

これはどうやらここだけの問題ではなさそう。
OGNL式でメソッド呼び出しを行う場合は、自分で例外を捕捉してログ出力するしかないようです。
たまたま、StreamResult から上記例外を出してもらえたので気づけましたが、それすらなかったら見過ごすところでした。