Author: centic
Date: Wed May 20 18:00:19 2015
New Revision: 1680642

URL: http://svn.apache.org/r1680642
Log:
Apply fix reported in bug 47661 and add unit tests

Modified:
    poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java

Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java?rev=1680642&r1=1680641&r2=1680642&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/DateUtil.java Wed May 20 
18:00:19 2015
@@ -567,7 +567,7 @@ public class DateUtil {
 
     private static int daysInPriorYears(int yr, boolean use1904windowing)
     {
-        if ((!use1904windowing && yr < 1900) || (use1904windowing && yr < 
1900)) {
+        if ((!use1904windowing && yr < 1900) || (use1904windowing && yr < 
1904)) {
             throw new IllegalArgumentException("'year' must be 1900 or 
greater");
         }
 

Modified: 
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java?rev=1680642&r1=1680641&r2=1680642&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java 
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java 
Wed May 20 18:00:19 2015
@@ -17,9 +17,7 @@
 
 package org.apache.poi.hssf.usermodel;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.io.IOException;
 import java.text.ParseException;
@@ -349,6 +347,7 @@ public final class TestHSSFDateUtil {
         HSSFWorkbook workbook = 
HSSFTestDataSamples.openSampleWorkbook("DateFormats.xls");
         HSSFSheet sheet       = workbook.getSheetAt(0);
         InternalWorkbook wb           = workbook.getWorkbook();
+        assertNotNull(wb);
 
         HSSFRow  row;
         HSSFCell cell;
@@ -482,6 +481,25 @@ public final class TestHSSFDateUtil {
     }
 
     @Test
+    public void absoluteDayYearTooLow() {
+        GregorianCalendar calendar = new GregorianCalendar(1899, 0, 1);
+        try {
+               HSSFDateUtil.absoluteDay(calendar, false);
+               fail("Should fail here");
+        } catch (IllegalArgumentException e) {
+               // expected here
+        }
+
+        try {
+            calendar = new GregorianCalendar(1903, 0, 1);
+            HSSFDateUtil.absoluteDay(calendar, true);
+               fail("Should fail here");
+        } catch (IllegalArgumentException e) {
+               // expected here
+        }
+    }
+
+    @Test
     public void convertTime() {
 
         final double delta = 1E-7; // a couple of digits more accuracy than 
strictly required



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to