commons-langのLocaleUtilsの問題

今まで、

Locale displayLocale = LocaleUtils.toLocale(key);

みたいな感じで、ロケールの文字列をLocaleに変換していたのだけど、Java 8とかだとzh_Hans_CNみたいなもので例外が発生することになる。というわけで、ICU4Jで

ULocale uLocale = new ULocale(key);
Locale displayLocale = uLocale.toLocale();

という感じで置き換えることで解決できる。

bind9のUDPクエリソースポートのランダム化

DNSが引けなくなり、bindのログを見てみると、

Sep 12 06:00:05 server named[16015]: /etc/bind/named.conf.options:15: using specific query-source port suppresses port randomization and can be insecure.
Sep 12 06:00:05 server named[16015]: /etc/bind/named.conf.options:16: using specific query-source port suppresses port randomization and can be insecure.

みたいな感じで出力されていた。どうやら、

query-source port 53;
query-source-v6 port 53;

の指定が良くないならしい。というわけで、以下のように*に変えたら解決。UDPクエリソースポートのランダム化の対応らしい。

query-source port *;
query-source-v6 port *;

JavaMailの罠

Mavenリポジトリを無邪気にJavaMailを検索して使おうとすると

<dependency>
  <groupId>javax.mail</groupId>
   <artifactId>javax.mail-api</artifactId>
  <version>1.5.2</version>
</dependency>

とか、使っても良さそうに見える。だがしかし、こいつはJavaEE用のパッケージなので、com.sun系パッケージのものたちが入っていない…。つまり、クラスが見つからないと怒られるパターン…。というわけで、JavaEEじゃない環境では

<dependency>
 <groupId>com.sun.mail</groupId>
 <artifactId>javax.mail</artifactId>
 <version>1.5.2</version>
</dependency>

を使うのが良いみたい。