code: public static Object getProperty(final Object pbean, final String pname)
        throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
  
      if (pbean == null) {
        throw new NoSuchMethodException("A null object has no getters");
      }
      if (pname == null) {
        throw new NoSuchMethodException("No method to get property for null");
      }
  
      final int posPoint = pname.indexOf('.');
      try {
        final AbstractGwtValidator validator =
            (AbstractGwtValidator) Validation.buildDefaultValidatorFactory().getValidator();
        if (posPoint >= 0) {
          final Object subObject = validator.getProperty(pbean, pname.substring(0, posPoint));
          if (subObject == null) {
            throw new NestedNullException(
                "Null property value for '" + pname + "' on bean class '" + pbean.getClass() + "'");
          }
          return getProperty(subObject, pname.substring(posPoint + 1));
        }
        return validator.getProperty(pbean, pname);
      } catch (final ReflectiveOperationException e) {
        throw new InvocationTargetException(e);
      }
    }
docs: <p>
  Return the value of the specified property of the specified bean, no matter which property
  reference format is used, with no type conversions.
  </p>
  
  <p>
  For more details see <code>PropertyUtilsBean</code>.
  </p>
  
  @param pbean Bean whose property is to be extracted
  @param pname Possibly indexed and/or nested name of the property to be extracted
  @return the property value
  
  @exception IllegalAccessException if the caller does not have access to the property accessor
  method
  @exception IllegalArgumentException if <code>bean</code> or <code>name</code> is null
  @exception InvocationTargetException if the property accessor method throws an exception
  @exception NoSuchMethodException if an accessor method for this propety cannot be found
  @see PropertyUtilsBean#getProperty