code: protected Field<?> getPrivateField(final FieldHolder<?> fieldHolder, final String propertyName)
     {
        if (this.privateFieldConvention != null)
        {
           // Determine field name based on convention. MessageFormat arguments are:
           //
           // {0} = dateOfBirth, surname
           // {1} = DateOfBirth, Surname
  
           String[] arguments = new String[] { propertyName, StringUtils.capitalize(propertyName) };
           String fieldName;
  
           synchronized (this.privateFieldConvention)
           {
              fieldName = this.privateFieldConvention.format(arguments, new StringBuffer(), null).toString();
           }
  
           return fieldHolder.getField(fieldName);
        }
  
        Field<?> field = fieldHolder.getField(propertyName);
  
        // FORGE-402: support fields starting with capital letter
  
        if (field == null && !Character.isUpperCase(propertyName.charAt(0)))
        {
           field = fieldHolder.getField(StringUtils.capitalize(propertyName));
        }
  
        return field;
     }
docs: Gets the private field representing the given <code>propertyName</code> within the given class.
  
  @return the private Field for this propertyName, or null if no such field (should not throw NoSuchFieldException)