¿Por qué los griales lanzan una excepción de puntero nulo al acceder a la relación hasMany por primera vez?

Tengo un problema extraño
Tengo dos clases de dominioUser yPost con campos:

class User {
  String name
  static hasMany = [posts: Post]
  static constraints = { }
}

class Post {
  String content
  long date = System.getTimeInMillis()
  static constraints = { }

  static belongsTo = [user: User]
  static mapping = {
    version: 'false'
  }
}

y el código del controlador es:

class UserController {
  def addUser = {
    def user
    if (User.count() == 0) {
      user = new User()
      user.name = "Manish Zedwal"
      user.save(flush: true)
    } else {
      user = User.get(1)
    }
    println "Posts count: " + user.posts.size()
    render "post count: " + user.posts.size()
 }
}

Por primera vez al acceder a urlhttp://localhost:8080/test/user/addUser, arroja una excepción de puntero nulo, pero después de esto funciona bien.
Esta es la excepción que recibo

2011-08-04 15:41:25,847 [http-8080-1] ERROR errors.GrailsExceptionResolver  - Exception occurred when processing request: [GET] /test/user/addUser
Stacktrace follows:
java.lang.NullPointerException: Cannot invoke method size() on null object
        at test.UserController$_closure2.doCall(UserController.groovy:18)
        at test.UserController$_closure2.doCall(UserController.groovy)
        at java.lang.Thread.run(Thread.java:636)

y por segunda vez, imprime y se ve bien como encanto

Posts count: 0

En la clase de dominio de usuario, porquehasMany relación paraposts, posts es una lista dePost objetos, entonces no debería haber una excepción de puntero nulo al obtener el tamaño de la lista vacía, sino que debería ser cero.

Cualquier ayuda apreciada

Respuestas a la pregunta(2)

Su respuesta a la pregunta