You cannot have rules that use the <valueof target="..."> tag as direct children of rules that use the and, or, or not operators, even if the target property is supposed to eventually evaluate to a Boolean value. For example, this rule is invalid:

<rule op=or name="Wrong!">
  <valueof target="isAvailable">
  <valueof bean="Profile.isAuthor">
</rule>

Instead, you must do the following:

<rule op=or>
  <rule op=eq>
    <valueof target="isAvailable">
    <valueof constant="true">
  </rule>
  <valueof bean="Profile.isAuthor">
</rule>

Copyright © 1997, 2013 Oracle and/or its affiliates. All rights reserved. Legal Notices