code: public Variable setVariable(
          String name, Object value, boolean strictJava, boolean recurse )
          throws UtilEvalError
      {
          if ( weHaveVar( name ) )
              // set the var here in the block namespace
              return super.setVariable( name, value, strictJava, false );
          else
              // set the var in the enclosing (parent) namespace
              return getParent().setVariable( name, value, strictJava, recurse );
      }
docs: /*
  Note: it may see like with the new 1.3 scoping this test could be
  removed, but it cannot.  When recurse is false we still need to set the
  variable in our parent, not here.