Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Tomcat 6.0でJSFのManagedBeanのBigDecimalがデフォルト0になる仕様

リクエストパラメータに含まれていない時でも、BigDecimalがnullではなく0になってしまう。

0にならないようにするには、「-Dorg.apache.el.parser.COERCE_TO_ZERO=false」でTomcatを起動する。

バグではなくTomcatの仕様のようだ。

http://tomcat.apache.org/tomcat-6.0-doc/config/systemprops.html

org.apache.el.parser.COERCE_TO_ZERO If true, when coercing expressions to numbers "" and null will be coerced to zero as required by the specification. If not specified, the default value of true will be used.