/** Returns OgnlRuntime.NotFound if the property does not exist. */
  public Object getPossibleProperty(Map context, Object target, String name) throws OgnlException {
    Object result;
    OgnlContext ognlContext = (OgnlContext) context;

    if (context.get("_compile") != null) {
      Getter getter = getGetter(ognlContext, target, name);

      if (getter != NotFoundGetter) {
        result = getter.get(ognlContext, target, name);
      } else {
        try {
          result = OgnlRuntime.getFieldValue(ognlContext, target, name, true);
        } catch (Exception ex) {
          throw new OgnlException(name, ex);
        }
      }
    } else {
      result = super.getPossibleProperty(context, target, name);
    }
    return result;
  }