Re: svn commit: r1671734 - in /commons/proper/lang/trunk/src: changes/ main/java/org/apache/commons/lang3/time/ test/java/org/apache/commons/lang3/reflect/ test/java/org/apache/commons/lang3/time/

2015-04-07 Thread Benedikt Ritter
Hello Charles,

looks like things got missed up. The Log messages takes about LANG-1109,
but LANG-1107 was added to changes.xml.
Furthermore there is a change in FieldUtilsTest. How does this relate to
either of the issues?

Regards,
Benedikt

2015-04-07 4:40 GMT+02:00 c...@apache.org:

 Author: chas
 Date: Tue Apr  7 02:40:49 2015
 New Revision: 1671734

 URL: http://svn.apache.org/r1671734
 Log:
 LANG-1109 - Number percentage formatting with fractional digits

 Modified:
 commons/proper/lang/trunk/src/changes/changes.xml

 commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java

 commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/reflect/FieldUtilsTest.java

 commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/FastDateParserSDFTest.java

 commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/FastDateParserTest.java

 Modified: commons/proper/lang/trunk/src/changes/changes.xml
 URL:
 http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/changes/changes.xml?rev=1671734r1=1671733r2=1671734view=diff

 ==
 --- commons/proper/lang/trunk/src/changes/changes.xml [utf-8] (original)
 +++ commons/proper/lang/trunk/src/changes/changes.xml [utf-8] Tue Apr  7
 02:40:49 2015
 @@ -22,7 +22,7 @@
body

release version=3.5 date=tba description=tba
 -
 +action issue=LANG-1107 type=update dev=chasFix parsing edge
 cases in FastDateParser/action
/release

release version=3.4 date=2014-04-06 description=Feature and
 bugfix release

 Modified:
 commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
 URL:
 http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java?rev=1671734r1=1671733r2=1671734view=diff

 ==
 ---
 commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
 (original)
 +++
 commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
 Tue Apr  7 02:40:49 2015
 @@ -744,9 +744,13 @@ public class FastDateParser implements D
  /**
   * A strategy that handles a timezone field in the parsing pattern
   */
 -private static class TimeZoneStrategy extends Strategy {
 -
 -private final String validTimeZoneChars;
 +static class TimeZoneStrategy extends Strategy {
 +private static final String RFC_822_TIME_ZONE = [+-]\\d{4};
 +private static final String GMT_OPTION= GMT[+-]\\d{1,2}:\\d{2};
 +// see http://www.iana.org/time-zones and
 http://cldr.unicode.org/translation/timezones
 +static final String TZ_DATABASE=
 (?:\\p{L}[\\p{L}\\p{Mc}\\p{Nd}\\p{Zs}\\p{P}[^-]]*-?\\p{Zs}?)*;
 +private static final String VALID_TZ =
 ((?iu)+RFC_822_TIME_ZONE+|+GMT_OPTION+|+TZ_DATABASE+);
 +
  private final SortedMapString, TimeZone tzNames= new
 TreeMapString, TimeZone(String.CASE_INSENSITIVE_ORDER);

  /**
 @@ -777,9 +781,6 @@ public class FastDateParser implements D
  TimeZoneStrategy(final Locale locale) {
  final String[][] zones =
 DateFormatSymbols.getInstance(locale).getZoneStrings();
  for (final String[] zone : zones) {
 -if (zone[ID].startsWith(GMT)) {
 -continue;
 -}
  final TimeZone tz = TimeZone.getTimeZone(zone[ID]);
  if (!tzNames.containsKey(zone[LONG_STD])){
  tzNames.put(zone[LONG_STD], tz);
 @@ -795,16 +796,7 @@ public class FastDateParser implements D
  tzNames.put(zone[SHORT_DST], tz);
  }
  }
 -}
 -
 -final StringBuilder sb= new StringBuilder();
 -sb.append((GMT[+-]\\d{1,2}:\\d{2}).append('|');
 -sb.append([+-]\\d{4}).append('|');
 -for(final String id : tzNames.keySet()) {
 -escapeRegex(sb, id, false).append('|');
 -}
 -sb.setCharAt(sb.length()-1, ')');
 -validTimeZoneChars= sb.toString();
 +}
  }

  /**
 @@ -812,7 +804,7 @@ public class FastDateParser implements D
   */
  @Override
  boolean addRegex(final FastDateParser parser, final StringBuilder
 regex) {
 -regex.append(validTimeZoneChars);
 +regex.append(VALID_TZ);
  return true;
  }

 @@ -825,8 +817,8 @@ public class FastDateParser implements D
  if(value.charAt(0)=='+' || value.charAt(0)=='-') {
  tz= TimeZone.getTimeZone(GMT+value);
  }
 -else if(value.startsWith(GMT)) {
 -tz= TimeZone.getTimeZone(value);
 +else if(value.regionMatches(true, 0, GMT, 0, 3)) {
 +tz= 

Re: svn commit: r1671734 - in /commons/proper/lang/trunk/src: changes/ main/java/org/apache/commons/lang3/time/ test/java/org/apache/commons/lang3/reflect/ test/java/org/apache/commons/lang3/time/

2015-04-07 Thread Chas Honton
Benedikt,

Expletive, I wasn't being careful.  The changes to FieldUtilsTest are to allow 
test to pass under jacoco coverage. 

I will revert, add another JIRA, fix changed.xml, and split into two commits 
tonight. 

Chas

 On Apr 6, 2015, at 11:29 PM, Benedikt Ritter brit...@apache.org wrote:
 
 Hello Charles,
 
 looks like things got missed up. The Log messages takes about LANG-1109,
 but LANG-1107 was added to changes.xml.
 Furthermore there is a change in FieldUtilsTest. How does this relate to
 either of the issues?
 
 Regards,
 Benedikt
 
 2015-04-07 4:40 GMT+02:00 c...@apache.org:
 
 Author: chas
 Date: Tue Apr  7 02:40:49 2015
 New Revision: 1671734
 
 URL: http://svn.apache.org/r1671734
 Log:
 LANG-1109 - Number percentage formatting with fractional digits
 
 Modified:
commons/proper/lang/trunk/src/changes/changes.xml
 
 commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
 
 commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/reflect/FieldUtilsTest.java
 
 commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/FastDateParserSDFTest.java
 
 commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/time/FastDateParserTest.java
 
 Modified: commons/proper/lang/trunk/src/changes/changes.xml
 URL:
 http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/changes/changes.xml?rev=1671734r1=1671733r2=1671734view=diff
 
 ==
 --- commons/proper/lang/trunk/src/changes/changes.xml [utf-8] (original)
 +++ commons/proper/lang/trunk/src/changes/changes.xml [utf-8] Tue Apr  7
 02:40:49 2015
 @@ -22,7 +22,7 @@
   body
 
   release version=3.5 date=tba description=tba
 -
 +action issue=LANG-1107 type=update dev=chasFix parsing edge
 cases in FastDateParser/action
   /release
 
   release version=3.4 date=2014-04-06 description=Feature and
 bugfix release
 
 Modified:
 commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
 URL:
 http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java?rev=1671734r1=1671733r2=1671734view=diff
 
 ==
 ---
 commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
 (original)
 +++
 commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/time/FastDateParser.java
 Tue Apr  7 02:40:49 2015
 @@ -744,9 +744,13 @@ public class FastDateParser implements D
 /**
  * A strategy that handles a timezone field in the parsing pattern
  */
 -private static class TimeZoneStrategy extends Strategy {
 -
 -private final String validTimeZoneChars;
 +static class TimeZoneStrategy extends Strategy {
 +private static final String RFC_822_TIME_ZONE = [+-]\\d{4};
 +private static final String GMT_OPTION= GMT[+-]\\d{1,2}:\\d{2};
 +// see http://www.iana.org/time-zones and
 http://cldr.unicode.org/translation/timezones
 +static final String TZ_DATABASE=
 (?:\\p{L}[\\p{L}\\p{Mc}\\p{Nd}\\p{Zs}\\p{P}[^-]]*-?\\p{Zs}?)*;
 +private static final String VALID_TZ =
 ((?iu)+RFC_822_TIME_ZONE+|+GMT_OPTION+|+TZ_DATABASE+);
 +
 private final SortedMapString, TimeZone tzNames= new
 TreeMapString, TimeZone(String.CASE_INSENSITIVE_ORDER);
 
 /**
 @@ -777,9 +781,6 @@ public class FastDateParser implements D
 TimeZoneStrategy(final Locale locale) {
 final String[][] zones =
 DateFormatSymbols.getInstance(locale).getZoneStrings();
 for (final String[] zone : zones) {
 -if (zone[ID].startsWith(GMT)) {
 -continue;
 -}
 final TimeZone tz = TimeZone.getTimeZone(zone[ID]);
 if (!tzNames.containsKey(zone[LONG_STD])){
 tzNames.put(zone[LONG_STD], tz);
 @@ -795,16 +796,7 @@ public class FastDateParser implements D
 tzNames.put(zone[SHORT_DST], tz);
 }
 }
 -}
 -
 -final StringBuilder sb= new StringBuilder();
 -sb.append((GMT[+-]\\d{1,2}:\\d{2}).append('|');
 -sb.append([+-]\\d{4}).append('|');
 -for(final String id : tzNames.keySet()) {
 -escapeRegex(sb, id, false).append('|');
 -}
 -sb.setCharAt(sb.length()-1, ')');
 -validTimeZoneChars= sb.toString();
 +}
 }
 
 /**
 @@ -812,7 +804,7 @@ public class FastDateParser implements D
  */
 @Override
 boolean addRegex(final FastDateParser parser, final StringBuilder
 regex) {
 -regex.append(validTimeZoneChars);
 +regex.append(VALID_TZ);
 return true;
 }
 
 @@ -825,8 +817,8 @@ public class FastDateParser implements D