]> source.dussan.org Git - poi.git/commitdiff
Bug 51374 - Fixed incorrect setting of lastPrinted OOXML core property
authorYegor Kozlov <yegor@apache.org>
Wed, 15 Jun 2011 11:15:40 +0000 (11:15 +0000)
committerYegor Kozlov <yegor@apache.org>
Wed, 15 Jun 2011 11:15:40 +0000 (11:15 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1135997 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/ooxml/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java
src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackageCoreProperties.java

index c2b46ea71a17cb92191a98c692788adf33a95f7a..889139d1d7cb37bbf032fce3332a62e03df0f111 100644 (file)
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.8-beta4" date="2011-??-??">
+           <action dev="poi-developers" type="add">51374 - Fixed incorrect setting of lastPrinted OOXML core property </action>
            <action dev="poi-developers" type="add">51351 - Word to XSL-FO converter</action>
            <action dev="poi-developers" type="add">50458 - Fixed missing shapeId in XSSF drawings </action>
            <action dev="poi-developers" type="add">51339 - Fixed arithmetic rounding in formula evaluation </action>
index 677a5132264b65bd15e0ea998523f8c8ce4bbe85..e0b9a3721dd6ef721e9ae5908889b19e2550dabd 100644 (file)
@@ -292,7 +292,7 @@ public final class PackagePropertiesPart extends PackagePart implements
         * @return A string representation of the last printed date.
         */
        public String getLastPrintedPropertyString() {
-               return getDateValue(created);
+               return getDateValue(lastPrinted);
        }
 
        /**
index b934aa308ef1c500778e8775cf2f88c7594f513c..f2b2f7e1c32f4c77e28f6e0b156b7b8b4e355861 100644 (file)
@@ -29,6 +29,7 @@ import junit.framework.TestCase;
 import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
+import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
 import org.apache.poi.openxml4j.util.Nullable;
 import org.apache.poi.util.POILogger;
 import org.apache.poi.util.POILogFactory;
@@ -123,4 +124,60 @@ public final class TestPackageCoreProperties extends TestCase {
                assertEquals("MyTitle", props.getTitleProperty().getValue());
                assertEquals("2", props.getVersionProperty().getValue());
        }
+
+    public void testCoreProperties_bug51374() throws Exception {
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+        df.setTimeZone(TimeZone.getTimeZone("UTC"));
+        String strDate = "2007-05-12T08:00:00Z";
+        Date date = df.parse(strDate);
+
+        OPCPackage pkg = new ZipPackage();
+        PackagePropertiesPart props = (PackagePropertiesPart)pkg.getPackageProperties();
+
+        // created
+        assertEquals("", props.getCreatedPropertyString());
+        assertNull(props.getCreatedProperty().getValue());
+        props.setCreatedProperty((String)null);
+        assertEquals("", props.getCreatedPropertyString());
+        assertNull(props.getCreatedProperty().getValue());
+        props.setCreatedProperty(new Nullable<Date>());
+        assertEquals("", props.getCreatedPropertyString());
+        assertNull(props.getCreatedProperty().getValue());
+        props.setCreatedProperty(new Nullable<Date>(date));
+        assertEquals(strDate, props.getCreatedPropertyString());
+        assertEquals(date, props.getCreatedProperty().getValue());
+        props.setCreatedProperty(strDate);
+        assertEquals(strDate, props.getCreatedPropertyString());
+        assertEquals(date, props.getCreatedProperty().getValue());
+
+        // lastPrinted
+        assertEquals("", props.getLastPrintedPropertyString());
+        assertNull(props.getLastPrintedProperty().getValue());
+        props.setLastPrintedProperty((String)null);
+        assertEquals("", props.getLastPrintedPropertyString());
+        assertNull(props.getLastPrintedProperty().getValue());
+        props.setLastPrintedProperty(new Nullable<Date>());
+        assertEquals("", props.getLastPrintedPropertyString());
+        assertNull(props.getLastPrintedProperty().getValue());
+        props.setLastPrintedProperty(new Nullable<Date>(date));
+        assertEquals(strDate, props.getLastPrintedPropertyString());
+        assertEquals(date, props.getLastPrintedProperty().getValue());
+        props.setLastPrintedProperty(strDate);
+        assertEquals(strDate, props.getLastPrintedPropertyString());
+        assertEquals(date, props.getLastPrintedProperty().getValue());
+
+        // modified
+        assertNull(props.getModifiedProperty().getValue());
+        props.setModifiedProperty((String)null);
+        assertNull(props.getModifiedProperty().getValue());
+        props.setModifiedProperty(new Nullable<Date>());
+        assertNull(props.getModifiedProperty().getValue());
+        props.setModifiedProperty(new Nullable<Date>(date));
+        assertEquals(strDate, props.getModifiedPropertyString());
+        assertEquals(date, props.getModifiedProperty().getValue());
+        props.setModifiedProperty(strDate);
+        assertEquals(strDate, props.getModifiedPropertyString());
+        assertEquals(date, props.getModifiedProperty().getValue());
+    }
+
 }