This was also wrong. 

```
  void attach(Action action) {
    if (actions == null) {
      if (this.action == null) {  // this.action == null is whats needed here.
        this.action = action;
        return;
      }
      actions = new ArrayList<Action>(3);
    }
    actions.add(action);
  }
```

Tests caught that.