Esta excepción me está jodiendo mucho tiempo. Por algún risible motivo, siempre olvido de dónde proviene el fallo —mi fallo— que la provoca, y tengo que mirarme todo el código una y otra vez. Para no tener que hacerlo nunca más, y para ayudar al resto de amnésicos-selectivos, aquí va la solución:

¿Te has acordado de inicializar la variable en el reset()?

La llamada al método reset() se lleva a cabo en cada nueva petición (o request) -independientemente del scope del ActionForm- antes de que el ActionForm sea poblado por dicha petición.
En un principio, se incluyó este método para facilitar la restauración de los valores de tipo boolean, ya que la manera en que estos son procesados por los exploradores y los formularios HTML así lo requiere.
¿Por qué? Cuando un formulario HTML incluye esas cajitas llamdas checkbox, sólo los valores que están activos se mandan en la petición, es decir: ¡aquellos que no lo están no se incluyen como parámetro! Así pues, se añade este método para permitir a las aplicaciones cambiar a false los valores de tipo boolean en el ActionForm, porque aquellos cuyo valor es false no están incluídos en la petición, y podría darse el caso de que un valor de tipo boolean se quede atascado en el valor true.

Esto no le va a gustar a nadie, pero de verdad que lo necesito. Permitídmelo.