DateFieldから呼び出すJSCalendarのフォーマットがおかしい?

Click FrameworkのDateFieldで、JSCalendarから日付をセットした場合、月はMMでフォーマットされるのに日付はddでフォーマットされないという現象に遭遇。

JSCalendarはDateクラスのprototypeにprintを追加してて、そこでフォーマットを指定できる。

Date.prototype.print = function (str) {
  //略
  s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)
  s["%e"] = d; // the day of the month (range 1 to 31)
  //略

これをDateFieldは利用してて、parseDateFormatPatternメソッドでJavaの日付フォーマットをJSCalendarのフォーマットに変換してる。でも"dd"がおかしい。

protected String parseDateFormatPattern(String pattern) {
//略
    } else if ("dd".equals(token)) {
        jsPattern.append("%e");
    } else if ("d".equals(token)) {
        jsPattern.append("%e");
//略

バグかなー。でも昔のClickははこの("d".equals(token))ってのも存在しなかったみたいで、あるリビジョンを境に追加されてる。このときにddも気づくじゃん?こんなバグが長期でほっとかれるはずないじゃん?おれの勘違いじゃね?とか思う。へっぽこの宿命。