DateTimeFormatterBuilder con conflictos especificados parseDefaulting para el campo AÑO

Tengo el siguiente formateador:

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());

Intento analizar la cadena "201505"

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

y arroja una excepción:

Causado por: java.time.DateTimeException: conflicto encontrado: el año 2016 difiere del año 2015

Funciona si comento la configuración del valor predeterminado para AÑO.

Hasta donde he entendido la documentación, solo debería intentar reemplazar el valor predeterminado si no se analiza ningún valor. Parece que esto funciona para el mes, ya que tengo un mes diferente al analizado por defecto. Sin embargo, no funciona por año.

¿Lo estoy usando mal? ¿Podría alguien decirme si hay una forma diferente de definir los valores predeterminados para los campos que podrían no estar presentes en un patrón?

Respuestas a la pregunta(1)

Su respuesta a la pregunta