Groovy Rareza privada de acceso de campo para padres / hijos con cierre

En Groovy, tengo una clase principal y una clase secundaria donde el constructor de la clase principal intenta establecer el valor de un campo de la clase principal usando un cierre como en el siguiente código:

try {
  def x = new ChildClass()
} catch (ex) {
  ex.printStackTrace(System.err)
}

class ParentClass {
  private values = []

  ParentClass(columnCount) {
    columnCount.times { values.add('') }
  }
}

class ChildClass extends ParentClass {
  ChildClass() {
    super(20)
  }
}

Sin embargo, cuando ejecuto este código obtengo una excepción groovy.lang.MissingPropertyException con el mensaje "No existe esa propiedad: valores para la clase: ChildClass". Sin embargo, si cambio el constructor de la clase principal para que no use el cierre con el método times como en este ejemplo:

try {
  def x = new ChildClass()
} catch (ex) {
  ex.printStackTrace(System.err)
}

class ParentClass {
  private values = []

  ParentClass(columnCount) {
    def i
    for (i = 0; i < columnCount; i++) {
      values.add('')
    }
  }
}

class ChildClass extends ParentClass {
  ChildClass() {
    super(20)
  }
}

Funciona. ¿Alguien puede explicarme este comportamiento? No entiendo por qué Groovy piensa que el campo de valores es una propiedad de la clase secundaria. Estoy usando la versión Groovy "Versión Groovy: 1.6.3 JVM: 1.5.0_18".

Respuestas a la pregunta(2)

Su respuesta a la pregunta