[java-sig-commits] [apache-commons-lang/f17] Add backported fix for JDK 1.7

Stanislav Ochotnicky sochotni at fedoraproject.org
Wed Feb 22 10:34:32 UTC 2012


commit b2ad8a61470cc485bc501ebc7b5f3bff1d9d9e2c
Author: Stanislav Ochotnicky <sochotnicky at redhat.com>
Date:   Wed Feb 22 11:25:47 2012 +0100

    Add backported fix for JDK 1.7

 0001-Make-source-version-1.3.patch                 |    4 +-
 0002-Fix-FastDateFormat-for-Java-7-behaviour.patch |   71 ++++++++++++++++++++
 apache-commons-lang.spec                           |   15 +++--
 3 files changed, 83 insertions(+), 7 deletions(-)
---
diff --git a/0001-Make-source-version-1.3.patch b/0001-Make-source-version-1.3.patch
index 2b6a7a2..4f31997 100644
--- a/0001-Make-source-version-1.3.patch
+++ b/0001-Make-source-version-1.3.patch
@@ -1,7 +1,7 @@
 From 4bdae0c8e87e64322753890a10bbbe5971d46bb6 Mon Sep 17 00:00:00 2001
 From: Stanislav Ochotnicky <sochotnicky at redhat.com>
 Date: Tue, 18 Jan 2011 13:43:08 +0100
-Subject: [PATCH] Make source version 1.3
+Subject: [PATCH 1/2] Make source version 1.3
 
 ---
  pom.xml |   12 ++++++++++++
@@ -31,5 +31,5 @@ index 367d439..fa3db7b 100644
    </build>
  
 -- 
-1.7.3.4
+1.7.7.6
 
diff --git a/0002-Fix-FastDateFormat-for-Java-7-behaviour.patch b/0002-Fix-FastDateFormat-for-Java-7-behaviour.patch
new file mode 100644
index 0000000..ccd05a0
--- /dev/null
+++ b/0002-Fix-FastDateFormat-for-Java-7-behaviour.patch
@@ -0,0 +1,71 @@
+From 6af11cb2cfdf83ce013a531005077259984c55e7 Mon Sep 17 00:00:00 2001
+From: Stanislav Ochotnicky <sochotnicky at redhat.com>
+Date: Wed, 22 Feb 2012 11:21:06 +0100
+Subject: [PATCH 2/2] Fix FastDateFormat for Java 7 behaviour
+
+Backported from 1146138
+See https://issues.apache.org/jira/browse/LANG-719 for more information
+---
+ .../apache/commons/lang/time/FastDateFormat.java   |   14 ++++++++++----
+ .../commons/lang/time/FastDateFormatTest.java      |    5 +++--
+ 2 files changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/src/main/java/org/apache/commons/lang/time/FastDateFormat.java b/src/main/java/org/apache/commons/lang/time/FastDateFormat.java
+index 2ca7e5c..b7e19ec 100644
+--- a/src/main/java/org/apache/commons/lang/time/FastDateFormat.java
++++ b/src/main/java/org/apache/commons/lang/time/FastDateFormat.java
+@@ -49,7 +49,7 @@ import org.apache.commons.lang.text.StrBuilder;
+  * </p>
+  *
+  * <p>Only formatting is supported, but all patterns are compatible with
+- * SimpleDateFormat (except time zones - see below).</p>
++ * SimpleDateFormat (except time zones and some year patterns - see below).</p>
+  *
+  * <p>Java 1.4 introduced a new pattern letter, <code>'Z'</code>, to represent
+  * time zones in RFC822 format (eg. <code>+0800</code> or <code>-1100</code>).
+@@ -60,6 +60,12 @@ import org.apache.commons.lang.text.StrBuilder;
+  * This introduces a minor incompatibility with Java 1.4, but at a gain of
+  * useful functionality.</p>
+  *
++ * <p>Javadoc cites for the year pattern: <i>For formatting, if the number of
++ * pattern letters is 2, the year is truncated to 2 digits; otherwise it is
++ * interpreted as a number.</i> Starting with Java 1.7 a pattern of 'Y' or
++ * 'YYY' will be formatted as '2003', while it was '03' in former Java
++ * versions. FastDateFormat implements the behavior of Java 7.</p>
++ *
+  * @author Apache Software Foundation
+  * @author TeaTrove project
+  * @author Brian S O'Neill
+@@ -606,10 +612,10 @@ public class FastDateFormat extends Format {
+                 rule = new TextField(Calendar.ERA, ERAs);
+                 break;
+             case 'y': // year (number)
+-                if (tokenLen >= 4) {
+-                    rule = selectNumberRule(Calendar.YEAR, tokenLen);
+-                } else {
++                if (tokenLen == 2) {
+                     rule = TwoDigitYearField.INSTANCE;
++                } else {
++                    rule = selectNumberRule(Calendar.YEAR, tokenLen < 4 ? 4 : tokenLen);
+                 }
+                 break;
+             case 'M': // month in year (text and number)
+diff --git a/src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java b/src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java
+index 8232747..bd4d664 100644
+--- a/src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java
++++ b/src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java
+@@ -230,8 +230,9 @@ public class FastDateFormatTest extends TestCase {
+                 " dddd ddd dd d DDDD DDD DD D EEEE EEE EE E aaaa aaa aa a zzzz zzz zz z";
+             fdf = FastDateFormat.getInstance(pattern);
+             sdf = new SimpleDateFormat(pattern);
+-            assertEquals(sdf.format(date1), fdf.format(date1));
+-            assertEquals(sdf.format(date2), fdf.format(date2));
++            // SDF bug fix starting with Java 7
++            assertEquals(sdf.format(date1).replaceAll("2003 03 03 03", "2003 2003 03 2003"), fdf.format(date1));
++            assertEquals(sdf.format(date2).replaceAll("2003 03 03 03", "2003 2003 03 2003"), fdf.format(date2));
+ 
+         } finally {
+             Locale.setDefault(realDefaultLocale);
+-- 
+1.7.7.6
+
diff --git a/apache-commons-lang.spec b/apache-commons-lang.spec
index 0c824b6..be1af18 100644
--- a/apache-commons-lang.spec
+++ b/apache-commons-lang.spec
@@ -4,13 +4,15 @@
 
 Name:           apache-%{short_name}
 Version:        2.6
-Release:        5%{?dist}
+Release:        6%{?dist}
 Summary:        Provides a host of helper utilities for the java.lang API
 License:        ASL 2.0
 Group:          Development/Libraries
 URL:            http://commons.apache.org/%{base_name}
 Source0:        http://archive.apache.org/dist/commons/%{base_name}/source/%{short_name}-%{version}-src.tar.gz
 Patch0:         0001-Make-source-version-1.3.patch
+Patch1:         0002-Fix-FastDateFormat-for-Java-7-behaviour.patch
+
 BuildArch:      noarch
 BuildRequires:  java-devel >= 1:1.6.0
 BuildRequires:  jpackage-utils >= 0:1.7.2
@@ -21,8 +23,6 @@ BuildRequires:  maven-surefire-provider-junit
 
 Requires:       java >= 1:1.6.0
 Requires:       jpackage-utils >= 0:1.6
-Requires(post):    jpackage-utils
-Requires(postun):  jpackage-utils
 
 
 # This should go away with F-17
@@ -54,6 +54,7 @@ Obsoletes:      jakarta-%{short_name}-javadoc <= 0:2.4
 %prep
 %setup -q -n %{short_name}-%{version}-src
 %patch0 -p1
+%patch1 -p1
 sed -i 's/\r//' *.txt
 
 %build
@@ -82,15 +83,19 @@ rm -rf $(readlink -f %{_javadocdir}/%{name}) %{_javadocdir}/%{name} || :
 
 %files
 %doc PROPOSAL.html LICENSE.txt RELEASE-NOTES.txt NOTICE.txt
-%{_javadir}/*
+%{_javadir}/%{name}.jar
+%{_javadir}/%{short_name}.jar
 %{_mavenpomdir}/JPP-%{short_name}.pom
-%{_mavendepmapfragdir}/*
+%{_mavendepmapfragdir}/%{name}
 
 %files javadoc
 %doc LICENSE.txt NOTICE.txt
 %doc %{_javadocdir}/%{name}
 
 %changelog
+* Wed Feb 22 2012 Stanislav Ochotnicky <sochotnicky at redhat.com> - 2.6-6
+- Add backported fix for JDK 1.7
+
 * Thu Jan 12 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.6-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 


More information about the java-sig-commits mailing list