In my controllers I have several methods that look like get'ers. Some marked protected, some private. These are internal to the functioning of the controller and are sometimes expensive if they go to the database. I've found that grails will internally invoke these a couple times on its own. It turns out that
DefaultGrailsController.java makes a couple invocations to DefaultGroovyMethods.getProperties(controller) which will invoke the get'ers to get the values. However, DefaultGrailsController doesn't need the values, it just wants the names.