]> source.dussan.org Git - poi.git/commitdiff
Fix bug #46043 - correctly write out HPSF properties with HWPF
authorNick Burch <nick@apache.org>
Wed, 12 Nov 2008 15:03:38 +0000 (15:03 +0000)
committerNick Burch <nick@apache.org>
Wed, 12 Nov 2008 15:03:38 +0000 (15:03 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@713393 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/changes.xml
src/documentation/content/xdocs/status.xml
src/scratchpad/src/org/apache/poi/hwpf/HWPFDocument.java
src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestCase.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestProblems.java

index 4b1b5566d0c44d120c00e2f0db4f58325b7edffd..04202047df2b59bdb80134c41e1c11fa51d57f2f 100644 (file)
@@ -37,6 +37,7 @@
 
                <!-- Don't forget to update status.xml too! -->
         <release version="3.5-beta4" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">46043 - correctly write out HPSF properties with HWPF</action>
            <action dev="POI-DEVELOPERS" type="add">45973 - added CreationHelper.createFormulaEvaluator(), implemeted both for HSSF and XSSF</action>
            <action dev="POI-DEVELOPERS" type="fix">46182 - fixed Slideshow.readPictures() to skip pictures with invalid headers</action>
            <action dev="POI-DEVELOPERS" type="fix">46137 - Handle odd files with a ContinueRecord after EOFRecord</action>
index 00321db7457b4cc7370bd61c854e4eabe650212e..429496784340647d78924b770d8f2f2a20950cec 100644 (file)
        <!-- Don't forget to update changes.xml too! -->
     <changes>
         <release version="3.5-beta4" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">46043 - correctly write out HPSF properties with HWPF</action>
            <action dev="POI-DEVELOPERS" type="add">45973 - added CreationHelper.createFormulaEvaluator(), implemeted both for HSSF and XSSF</action>
            <action dev="POI-DEVELOPERS" type="fix">46182 - fixed Slideshow.readPictures() to skip pictures with invalid headers</action>
-                        <action dev="POI-DEVELOPERS" type="fix">46137 - Handle odd files with a ContinueRecord after EOFRecord</action>
+           <action dev="POI-DEVELOPERS" type="fix">46137 - Handle odd files with a ContinueRecord after EOFRecord</action>
            <action dev="POI-DEVELOPERS" type="fix">Fixed problem with linking shared formulas when ranges overlap</action>
            <action dev="POI-DEVELOPERS" type="fix">45784 - More fixes to SeriesTextRecord</action>
            <action dev="POI-DEVELOPERS" type="fix">46033 - fixed TableCell to correctly set text type</action>
index f1898c082be7b78966a7a09898d93b451c102521..9bc8354a73576c01dc0bed3ef240379e6e6614b2 100644 (file)
@@ -552,7 +552,8 @@ public class HWPFDocument extends POIDocument
     pfs.createDocument(new ByteArrayInputStream(mainBuf), "WordDocument");
     pfs.createDocument(new ByteArrayInputStream(tableBuf), "1Table");
     pfs.createDocument(new ByteArrayInputStream(dataBuf), "Data");
-
+    writeProperties(pfs);
+    
     pfs.writeFilesystem(out);
   }
 
index b831851a1e8d3a3526078a2705dad14ae794c64d..dcfa99aecd57deea3f0e90defb76c190f7d327ab 100644 (file)
         
 package org.apache.poi.hwpf;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
 import junit.framework.TestCase;
 
 
@@ -30,9 +34,7 @@ public abstract class HWPFTestCase
   {
   }
 
-  protected void setUp()
-    throws Exception
-  {
+  protected void setUp() throws Exception {
     super.setUp();
     /**@todo verify the constructors*/
     _hWPFDocFixture = new HWPFDocFixture(this);
@@ -40,13 +42,20 @@ public abstract class HWPFTestCase
     _hWPFDocFixture.setUp();
   }
 
-  protected void tearDown()
-    throws Exception
-  {
-    _hWPFDocFixture.tearDown();
+  protected void tearDown() throws Exception {
+         if(_hWPFDocFixture != null) {
+         _hWPFDocFixture.tearDown();
+         }
 
-    _hWPFDocFixture = null;
-    super.tearDown();
+      _hWPFDocFixture = null;
+      super.tearDown();
   }
 
+  public HWPFDocument writeOutAndRead(HWPFDocument doc) throws IOException {
+         ByteArrayOutputStream baos = new ByteArrayOutputStream();
+         doc.write(baos);
+         ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+         HWPFDocument newDoc = new HWPFDocument(bais);
+         return newDoc;
+  }
 }
index 542e2d792078ff1e46f398a38c68cb55b6b8f263..2cc47474f8084995f1f23f0fb14ea90a6afa90b4 100644 (file)
@@ -19,10 +19,9 @@ package org.apache.poi.hwpf.usermodel;
 import java.io.File;
 import java.io.FileInputStream;
 
-import junit.framework.TestCase;
-
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestCase;
 import org.apache.poi.hwpf.model.StyleSheet;
 
 /**
@@ -30,13 +29,10 @@ import org.apache.poi.hwpf.model.StyleSheet;
  *
  * @author Nick Burch (nick at torchbox dot com)
  */
-public class TestProblems extends TestCase {
+public class TestProblems extends HWPFTestCase {
 
        private String dirname = System.getProperty("HWPF.testdata.path");
        
-    protected void setUp() throws Exception {
-    }
-
     /**
      * ListEntry passed no ListTable
      */
@@ -165,4 +161,14 @@ public class TestProblems extends TestCase {
                        // Good
                }
        }
+       
+       public void testWriteProperties() throws Exception {
+               HWPFDocument doc = new HWPFDocument(new FileInputStream(
+                       new File(dirname, "SampleDoc.doc")));
+               assertEquals("Nick Burch", doc.getSummaryInformation().getAuthor());
+               
+               // Write and read
+               HWPFDocument doc2 = writeOutAndRead(doc);
+               assertEquals("Nick Burch", doc.getSummaryInformation().getAuthor());
+       }
 }