After a little more thought about this, I'm beginning to think it has to do with the method naming. For instance, the code I've written calls the size() method. This isn't a typical property accessor (no "get"). Therefore, it might be the code is executing before the rule fires and checking for size() of an ArrayList (Collection) may simply not be possible. Can anyone confirm this theory?
Thanks.