DateTimeFormatterBuilder com parseDefaulting especificado conflitos para o campo YEAR

Eu tenho o seguinte formatador:

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
        .appendPattern("yyyyMM")
        .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
        .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
        .parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
        .parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
        .parseDefaulting(ChronoField.MONTH_OF_YEAR, 1)
        .parseDefaulting(ChronoField.YEAR, ZonedDateTime.now().getYear())
        .toFormatter()
        .withZone(ZoneId.systemDefault());

Eu tento analisar a string "201505"

System.out.println(ZonedDateTime.parse("201505", formatter));

e lança uma exceção:

Causado por: java.time.DateTimeException: Conflito encontrado: o ano de 2016 difere do ano de 2015

Funciona se eu comentar a configuração do valor padrão para YEAR.

Tanto quanto eu entendi a documentação, ele deve apenas tentar substituir o valor padrão se não houver um valor analisado. Parece que isso funciona durante o mês, pois tenho um mês diferente do padrão analisado. No entanto, não funciona por ano.

Estou usando errado? Alguém poderia me dizer se existe uma maneira diferente de definir valores padrão para campos que podem não estar presentes em um padrão?