Log4jで月単位のローリングにバグ?

DailyRollingFileAppenderで月ごとにファイルローリングをした時に挙動がおかしい事に気づきました。正しく月ごとにファイルがローリングされません。

例えばログ出力を[2004/11/24 16:48:30]に開始したとしましょう。そうすると次のローリング開始日時が[2004/12/1 00:48:00]に設定されます。つまり、[2004/12/1 00:00:00]から出力されたログは、新しいファイルへ書き込まれなければいけないのに、[2004/12/1 00:48:00]以降にならないとファイルが切り替わらないという事です。

初めてログ出力した時刻の「分」がそのまま次のローリングの時刻に引き継がれてしまっています。これはDailyRollingFileAppenderクラスの中に定義してある、RollingCalenderクラス、getNextCheckDateメソッドのバグです。420行目付近から始まる下記の赤い部分が抜けています。

case DailyRollingFileAppender.TOP_OF_MONTH:
    this.set(Calendar.DATE, 1);
    this.set(Calendar.HOUR_OF_DAY, 0);
    this.set(Calendar.MINUTE, 0);
    this.set(Calendar.SECOND, 0);
    this.set(Calendar.MILLISECOND, 0);
    this.add(Calendar.MONTH, 1);
    break;

そういうもんなのかなぁと思っていましたけど、やはり挙動的に困るので、直してみました。ちなみにこのバグは「週単位のローリング」を設定しても起こります。なぜ分、時、日、午前・午後などのローリングは分を00分に設定しているのに、週と月のローリングだけ分の値を00分にしていないのかは謎です。