what will happen to the binary log if it reaches its maximum value ? Does it reset to mysql-bin.00001 again?
If the binlog file number reaches its maximum value, it appears the server will throw an error.

However, the maximum value is not 999999 as it would appear ... it's 2,147,483,647.

From the source file sql/log.h (MySQL 5.6 source tree):

#define MAX_LOG_UNIQUE_FN_EXT 0x7FFFFFFF


Other relevant files are sql/binlog.cc and sql/log.cc.  The code that generates log file names zero-pads values to 6 digits after incrementing the current largest number by 1, but sprintf(ext_buf, "%06lu", next) will not truncate larger numbers, it just won't pad them... so mysql-bin.999999 would be followed by mysql-bin.1000000.

And, according to the Google Machine, somebody apparently tried it just to make sure.