久々にはまったので記録。
プロパティファイルである機能のスイッチON/OFFを制御したくて

x_flg = true

を記載して、

boolean x_flg = Boolean.getBoolean(propMap.getProperty("x_flg", "true"));
logger.info("x_flg="+x_flg);

の結果が"false"。
えー?
読み込んだファイル間違えた?変な文字コード入ってない?プロパティ名正しい?とチェックしたが異常が見当たらない。

boolean x_flg = Boolean.getBoolean(propMap.getProperty("x_flg", "true"));
logger.info("x_flg="+x_flg);

ではなく、正しくは、

boolean x_flg = Boolean.parseBoolean(propMap.getProperty("x_flg", "true"));
logger.info("x_flg="+x_flg);

だった。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Boolean.html#parseBoolean-java.lang.String-
そういえばIntegerもparseIntだったな。
では、getBooleanは何者なんだ?というと、

引数によって指定されたシステム・プロパティが存在し、それが文字列"true"に等しい場合にだけ、trueを返します。

https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Boolean.html#getBoolean-java.lang.String-

システムプロパティだったか。なんと紛らわしい名前のメソッド…。
つか10年近く前に同じ罠に嵌った人が。
d.hatena.ne.jp

JavaFX & Java8プログラミング―Javaによる新しいGUIプログラミング入門
日向 俊二
カットシステム
売り上げランキング: 135,182