Fix bug #46043 - correctly write out HPSF properties with HWPF

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@713393 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2008-11-12 15:03:38 +00:00
parent af7f84c27e
commit 5da1e72cad
5 changed files with 35 additions and 17 deletions

View 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>

View File

@ -34,9 +34,10 @@
<!-- 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>

View 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);
}

View File

@ -18,6 +18,10 @@
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;
}
}

View 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());
}
}