Replace HWPFOutputStream with ByteArrayOutputStream - it doesn't add any new features

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1797838 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andreas Beeker 2017-06-06 22:21:40 +00:00
parent 2b4f944883
commit 739599059a
27 changed files with 156 additions and 225 deletions

View File

@ -16,12 +16,12 @@
==================================================================== */ ==================================================================== */
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger; import org.apache.poi.util.POILogger;
@ -148,7 +148,7 @@ public class BookmarksTables
} }
public void writePlcfBkmkf( FileInformationBlock fib, public void writePlcfBkmkf( FileInformationBlock fib,
HWPFOutputStream tableStream ) throws IOException ByteArrayOutputStream tableStream ) throws IOException
{ {
if ( descriptorsFirst == null || descriptorsFirst.length() == 0 ) if ( descriptorsFirst == null || descriptorsFirst.length() == 0 )
{ {
@ -157,16 +157,16 @@ public class BookmarksTables
return; return;
} }
int start = tableStream.getOffset(); int start = tableStream.size();
tableStream.write( descriptorsFirst.toByteArray() ); tableStream.write( descriptorsFirst.toByteArray() );
int end = tableStream.getOffset(); int end = tableStream.size();
fib.setFcPlcfbkf( start ); fib.setFcPlcfbkf( start );
fib.setLcbPlcfbkf( end - start ); fib.setLcbPlcfbkf( end - start );
} }
public void writePlcfBkmkl( FileInformationBlock fib, public void writePlcfBkmkl( FileInformationBlock fib,
HWPFOutputStream tableStream ) throws IOException ByteArrayOutputStream tableStream ) throws IOException
{ {
if ( descriptorsLim == null || descriptorsLim.length() == 0 ) if ( descriptorsLim == null || descriptorsLim.length() == 0 )
{ {
@ -175,16 +175,16 @@ public class BookmarksTables
return; return;
} }
int start = tableStream.getOffset(); int start = tableStream.size();
tableStream.write( descriptorsLim.toByteArray() ); tableStream.write( descriptorsLim.toByteArray() );
int end = tableStream.getOffset(); int end = tableStream.size();
fib.setFcPlcfbkl( start ); fib.setFcPlcfbkl( start );
fib.setLcbPlcfbkl( end - start ); fib.setLcbPlcfbkl( end - start );
} }
public void writeSttbfBkmk( FileInformationBlock fib, public void writeSttbfBkmk( FileInformationBlock fib,
HWPFOutputStream tableStream ) throws IOException ByteArrayOutputStream tableStream ) throws IOException
{ {
if ( names == null || names.isEmpty() ) if ( names == null || names.isEmpty() )
{ {
@ -193,10 +193,10 @@ public class BookmarksTables
return; return;
} }
int start = tableStream.getOffset(); int start = tableStream.size();
SttbUtils.writeSttbfBkmk( names.toArray( new String[names.size()] ), SttbUtils.writeSttbfBkmk( names.toArray( new String[names.size()] ),
tableStream ); tableStream );
int end = tableStream.getOffset(); int end = tableStream.size();
fib.setFcSttbfbkmk( start ); fib.setFcSttbfbkmk( start );
fib.setLcbSttbfbkmk( end - start ); fib.setLcbSttbfbkmk( end - start );

View File

@ -17,6 +17,7 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -31,7 +32,6 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.hwpf.sprm.SprmBuffer; import org.apache.poi.hwpf.sprm.SprmBuffer;
import org.apache.poi.hwpf.sprm.SprmIterator; import org.apache.poi.hwpf.sprm.SprmIterator;
import org.apache.poi.hwpf.sprm.SprmOperation; import org.apache.poi.hwpf.sprm.SprmOperation;
@ -448,14 +448,14 @@ public class CHPBinTable
public void writeTo( HWPFFileSystem sys, int fcMin, public void writeTo( HWPFFileSystem sys, int fcMin,
CharIndexTranslator translator ) throws IOException CharIndexTranslator translator ) throws IOException
{ {
HWPFOutputStream docStream = sys.getStream( "WordDocument" ); ByteArrayOutputStream docStream = sys.getStream( "WordDocument" );
HWPFOutputStream tableStream = sys.getStream( "1Table" ); ByteArrayOutputStream tableStream = sys.getStream( "1Table" );
writeTo( docStream, tableStream, fcMin, translator ); writeTo( docStream, tableStream, fcMin, translator );
} }
public void writeTo( HWPFOutputStream wordDocumentStream, public void writeTo( ByteArrayOutputStream wordDocumentStream,
HWPFOutputStream tableStream, int fcMin, ByteArrayOutputStream tableStream, int fcMin,
CharIndexTranslator translator ) throws IOException CharIndexTranslator translator ) throws IOException
{ {
@ -470,7 +470,7 @@ public class CHPBinTable
PlexOfCps bte = new PlexOfCps( 4 ); PlexOfCps bte = new PlexOfCps( 4 );
// each FKP must start on a 512 byte page. // each FKP must start on a 512 byte page.
int docOffset = wordDocumentStream.getOffset(); int docOffset = wordDocumentStream.size();
int mod = docOffset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE; int mod = docOffset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE;
if (mod != 0) if (mod != 0)
{ {
@ -479,7 +479,7 @@ public class CHPBinTable
} }
// get the page number for the first fkp // get the page number for the first fkp
docOffset = wordDocumentStream.getOffset(); docOffset = wordDocumentStream.size();
int pageNum = docOffset/POIFSConstants.SMALLER_BIG_BLOCK_SIZE; int pageNum = docOffset/POIFSConstants.SMALLER_BIG_BLOCK_SIZE;
// get the ending fc // get the ending fc

View File

@ -17,13 +17,13 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.hwpf.sprm.SprmBuffer; import org.apache.poi.hwpf.sprm.SprmBuffer;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
@ -82,14 +82,14 @@ public class ComplexFileTable {
@Deprecated @Deprecated
public void writeTo(HWPFFileSystem sys) throws IOException { public void writeTo(HWPFFileSystem sys) throws IOException {
HWPFOutputStream docStream = sys.getStream("WordDocument"); ByteArrayOutputStream docStream = sys.getStream("WordDocument");
HWPFOutputStream tableStream = sys.getStream("1Table"); ByteArrayOutputStream tableStream = sys.getStream("1Table");
writeTo(docStream, tableStream); writeTo(docStream, tableStream);
} }
public void writeTo(HWPFOutputStream wordDocumentStream, public void writeTo(ByteArrayOutputStream wordDocumentStream,
HWPFOutputStream tableStream) throws IOException { ByteArrayOutputStream tableStream) throws IOException {
tableStream.write(TEXT_PIECE_TABLE_TYPE); tableStream.write(TEXT_PIECE_TABLE_TYPE);
byte[] table = _tpt.writeTo(wordDocumentStream); byte[] table = _tpt.writeTo(wordDocumentStream);

View File

@ -17,9 +17,9 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.hwpf.model.types.DOPAbstractType; import org.apache.poi.hwpf.model.types.DOPAbstractType;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
@ -65,7 +65,7 @@ public final class DocumentProperties extends DOPAbstractType
super.serialize( data, offset ); super.serialize( data, offset );
} }
public void writeTo( HWPFOutputStream tableStream ) throws IOException public void writeTo( ByteArrayOutputStream tableStream ) throws IOException
{ {
byte[] supported = new byte[getSize()]; byte[] supported = new byte[getSize()];
serialize( supported, 0 ); serialize( supported, 0 );

View File

@ -17,13 +17,13 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
@ -223,7 +223,7 @@ public final class FIBFieldHandler
return _fields.length / 2; return _fields.length / 2;
} }
void writeTo(byte[] mainStream, int offset, HWPFOutputStream tableStream) void writeTo(byte[] mainStream, int offset, ByteArrayOutputStream tableStream)
throws IOException throws IOException
{ {
for (int x = 0; x < _fields.length/2; x++) for (int x = 0; x < _fields.length/2; x++)
@ -231,8 +231,8 @@ public final class FIBFieldHandler
UnhandledDataStructure ds = _unknownMap.get(Integer.valueOf(x)); UnhandledDataStructure ds = _unknownMap.get(Integer.valueOf(x));
if (ds != null) if (ds != null)
{ {
_fields[x * 2] = tableStream.getOffset(); _fields[x * 2] = tableStream.size();
LittleEndian.putInt(mainStream, offset, tableStream.getOffset()); LittleEndian.putInt(mainStream, offset, tableStream.size());
offset += LittleEndian.INT_SIZE; offset += LittleEndian.INT_SIZE;
byte[] buf = ds.getBuf(); byte[] buf = ds.getBuf();

View File

@ -19,12 +19,12 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
/** /**
@ -131,19 +131,19 @@ public class FieldsTables
} }
private int savePlex( FileInformationBlock fib, FieldsDocumentPart part, private int savePlex( FileInformationBlock fib, FieldsDocumentPart part,
PlexOfCps plexOfCps, HWPFOutputStream outputStream ) PlexOfCps plexOfCps, ByteArrayOutputStream outputStream )
throws IOException throws IOException
{ {
if ( plexOfCps == null || plexOfCps.length() == 0 ) if ( plexOfCps == null || plexOfCps.length() == 0 )
{ {
fib.setFieldsPlcfOffset( part, outputStream.getOffset() ); fib.setFieldsPlcfOffset( part, outputStream.size() );
fib.setFieldsPlcfLength( part, 0 ); fib.setFieldsPlcfLength( part, 0 );
return 0; return 0;
} }
byte[] data = plexOfCps.toByteArray(); byte[] data = plexOfCps.toByteArray();
int start = outputStream.getOffset(); int start = outputStream.size();
int length = data.length; int length = data.length;
outputStream.write( data ); outputStream.write( data );
@ -154,7 +154,7 @@ public class FieldsTables
return length; return length;
} }
public void write( FileInformationBlock fib, HWPFOutputStream tableStream ) public void write( FileInformationBlock fib, ByteArrayOutputStream tableStream )
throws IOException throws IOException
{ {
for ( FieldsDocumentPart part : FieldsDocumentPart.values() ) for ( FieldsDocumentPart part : FieldsDocumentPart.values() )

View File

@ -17,14 +17,13 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.HashSet; import java.util.HashSet;
import java.util.Locale; import java.util.Locale;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
@ -67,12 +66,6 @@ public final class FileInformationBlock
offset = FibBase.getSize(); offset = FibBase.getSize();
assert offset == 32; assert offset == 32;
if ( _fibBase.isFEncrypted() )
{
throw new EncryptedDocumentException(
"Cannot process encrypted word file" );
}
_csw = LittleEndian.getUShort( mainDocument, offset ); _csw = LittleEndian.getUShort( mainDocument, offset );
offset += LittleEndian.SHORT_SIZE; offset += LittleEndian.SHORT_SIZE;
assert offset == 34; assert offset == 34;
@ -1074,7 +1067,7 @@ public final class FileInformationBlock
offset ); offset );
} }
public void writeTo( byte[] mainStream, HWPFOutputStream tableStream ) public void writeTo( byte[] mainStream, ByteArrayOutputStream tableStream )
throws IOException throws IOException
{ {
_cbRgFcLcb = _fieldHandler.getFieldsCount(); _cbRgFcLcb = _fieldHandler.getFieldsCount();

View File

@ -17,10 +17,10 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
@ -118,11 +118,11 @@ public final class FontTable
@Deprecated @Deprecated
public void writeTo( HWPFFileSystem sys ) throws IOException public void writeTo( HWPFFileSystem sys ) throws IOException
{ {
HWPFOutputStream tableStream = sys.getStream( "1Table" ); ByteArrayOutputStream tableStream = sys.getStream( "1Table" );
writeTo( tableStream ); writeTo( tableStream );
} }
public void writeTo( HWPFOutputStream tableStream ) throws IOException public void writeTo( ByteArrayOutputStream tableStream ) throws IOException
{ {
byte[] buf = new byte[LittleEndian.SHORT_SIZE]; byte[] buf = new byte[LittleEndian.SHORT_SIZE];
LittleEndian.putShort(buf, 0, _stringCount); LittleEndian.putShort(buf, 0, _stringCount);

View File

@ -18,10 +18,10 @@
*/ */
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
@ -80,7 +80,7 @@ public class LFOData
return result; return result;
} }
void writeTo( HWPFOutputStream tableStream ) throws IOException void writeTo( ByteArrayOutputStream tableStream ) throws IOException
{ {
LittleEndian.putInt( _cp, tableStream ); LittleEndian.putInt( _cp, tableStream );
for ( ListFormatOverrideLevel lfolvl : _rgLfoLvl ) for ( ListFormatOverrideLevel lfolvl : _rgLfoLvl )

View File

@ -22,7 +22,6 @@ import java.io.IOException;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
@ -81,9 +80,9 @@ public final class ListTables
} }
public void writeListDataTo( FileInformationBlock fib, public void writeListDataTo( FileInformationBlock fib,
HWPFOutputStream tableStream ) throws IOException ByteArrayOutputStream tableStream ) throws IOException
{ {
final int startOffset = tableStream.getOffset(); final int startOffset = tableStream.size();
fib.setFcPlfLst( startOffset ); fib.setFcPlfLst( startOffset );
int listSize = _listMap.size(); int listSize = _listMap.size();
@ -109,12 +108,12 @@ public final class ListTables
* account for the array of LVLs. -- Page 76 of 621 -- [MS-DOC] -- * account for the array of LVLs. -- Page 76 of 621 -- [MS-DOC] --
* v20110315 Word (.doc) Binary File Format * v20110315 Word (.doc) Binary File Format
*/ */
fib.setLcbPlfLst( tableStream.getOffset() - startOffset ); fib.setLcbPlfLst( tableStream.size() - startOffset );
tableStream.write( levelBuf.toByteArray() ); tableStream.write( levelBuf.toByteArray() );
} }
public void writeListOverridesTo( FileInformationBlock fib, public void writeListOverridesTo( FileInformationBlock fib,
HWPFOutputStream tableStream ) throws IOException ByteArrayOutputStream tableStream ) throws IOException
{ {
_plfLfo.writeTo( fib, tableStream ); _plfLfo.writeTo( fib, tableStream );
} }

View File

@ -16,9 +16,9 @@
==================================================================== */ ==================================================================== */
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
/** /**
@ -82,37 +82,37 @@ public class NotesTables
textPositionsStart, textPositionsLength, 0 ); textPositionsStart, textPositionsLength, 0 );
} }
public void writeRef( FileInformationBlock fib, HWPFOutputStream tableStream ) public void writeRef( FileInformationBlock fib, ByteArrayOutputStream tableStream )
throws IOException throws IOException
{ {
if ( descriptors == null || descriptors.length() == 0 ) if ( descriptors == null || descriptors.length() == 0 )
{ {
fib.setNotesDescriptorsOffset( noteType, tableStream.getOffset() ); fib.setNotesDescriptorsOffset( noteType, tableStream.size() );
fib.setNotesDescriptorsSize( noteType, 0 ); fib.setNotesDescriptorsSize( noteType, 0 );
return; return;
} }
int start = tableStream.getOffset(); int start = tableStream.size();
tableStream.write( descriptors.toByteArray() ); tableStream.write( descriptors.toByteArray() );
int end = tableStream.getOffset(); int end = tableStream.size();
fib.setNotesDescriptorsOffset( noteType, start ); fib.setNotesDescriptorsOffset( noteType, start );
fib.setNotesDescriptorsSize( noteType, end - start ); fib.setNotesDescriptorsSize( noteType, end - start );
} }
public void writeTxt( FileInformationBlock fib, HWPFOutputStream tableStream ) public void writeTxt( FileInformationBlock fib, ByteArrayOutputStream tableStream )
throws IOException throws IOException
{ {
if ( textPositions == null || textPositions.length() == 0 ) if ( textPositions == null || textPositions.length() == 0 )
{ {
fib.setNotesTextPositionsOffset( noteType, tableStream.getOffset() ); fib.setNotesTextPositionsOffset( noteType, tableStream.size() );
fib.setNotesTextPositionsSize( noteType, 0 ); fib.setNotesTextPositionsSize( noteType, 0 );
return; return;
} }
int start = tableStream.getOffset(); int start = tableStream.size();
tableStream.write( textPositions.toByteArray() ); tableStream.write( textPositions.toByteArray() );
int end = tableStream.getOffset(); int end = tableStream.size();
fib.setNotesTextPositionsOffset( noteType, start ); fib.setNotesTextPositionsOffset( noteType, start );
fib.setNotesTextPositionsSize( noteType, end - start ); fib.setNotesTextPositionsSize( noteType, end - start );

View File

@ -17,6 +17,7 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -26,7 +27,6 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.hwpf.sprm.SprmBuffer; import org.apache.poi.hwpf.sprm.SprmBuffer;
import org.apache.poi.hwpf.sprm.SprmIterator; import org.apache.poi.hwpf.sprm.SprmIterator;
import org.apache.poi.hwpf.sprm.SprmOperation; import org.apache.poi.hwpf.sprm.SprmOperation;
@ -386,15 +386,15 @@ public class PAPBinTable
return _paragraphs; return _paragraphs;
} }
public void writeTo( HWPFOutputStream wordDocumentStream, public void writeTo( ByteArrayOutputStream wordDocumentStream,
HWPFOutputStream tableStream, CharIndexTranslator translator ) ByteArrayOutputStream tableStream, CharIndexTranslator translator )
throws IOException throws IOException
{ {
PlexOfCps binTable = new PlexOfCps(4); PlexOfCps binTable = new PlexOfCps(4);
// each FKP must start on a 512 byte page. // each FKP must start on a 512 byte page.
int docOffset = wordDocumentStream.getOffset(); int docOffset = wordDocumentStream.size();
int mod = docOffset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE; int mod = docOffset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE;
if (mod != 0) if (mod != 0)
{ {
@ -403,7 +403,7 @@ public class PAPBinTable
} }
// get the page number for the first fkp // get the page number for the first fkp
docOffset = wordDocumentStream.getOffset(); docOffset = wordDocumentStream.size();
int pageNum = docOffset/POIFSConstants.SMALLER_BIG_BLOCK_SIZE; int pageNum = docOffset/POIFSConstants.SMALLER_BIG_BLOCK_SIZE;
// get the ending fc // get the ending fc

View File

@ -17,13 +17,13 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
@ -182,7 +182,7 @@ public final class PAPFormattedDiskPage extends FormattedDiskPage {
* @throws IOException * @throws IOException
* if an I/O error occurs. * if an I/O error occurs.
*/ */
protected byte[] toByteArray( HWPFOutputStream dataStream, protected byte[] toByteArray( ByteArrayOutputStream dataStream,
CharIndexTranslator translator ) throws IOException CharIndexTranslator translator ) throws IOException
{ {
byte[] buf = new byte[512]; byte[] buf = new byte[512];
@ -296,7 +296,7 @@ public final class PAPFormattedDiskPage extends FormattedDiskPage {
byte[] hugePapx = new byte[grpprl.length - 2]; byte[] hugePapx = new byte[grpprl.length - 2];
System.arraycopy( grpprl, 2, hugePapx, 0, grpprl.length - 2 ); System.arraycopy( grpprl, 2, hugePapx, 0, grpprl.length - 2 );
int dataStreamOffset = dataStream.getOffset(); int dataStreamOffset = dataStream.size();
dataStream.write( hugePapx ); dataStream.write( hugePapx );
// grpprl = grpprl containing only a sprmPHugePapx2 // grpprl = grpprl containing only a sprmPHugePapx2

View File

@ -18,11 +18,11 @@
*/ */
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger; import org.apache.poi.util.POILogger;
@ -202,10 +202,10 @@ public class PlfLfo
return result; return result;
} }
void writeTo( FileInformationBlock fib, HWPFOutputStream outputStream ) void writeTo( FileInformationBlock fib, ByteArrayOutputStream outputStream )
throws IOException throws IOException
{ {
final int offset = outputStream.getOffset(); final int offset = outputStream.size();
fib.setFcPlfLfo( offset ); fib.setFcPlfLfo( offset );
LittleEndian.putUInt( _lfoMac, outputStream ); LittleEndian.putUInt( _lfoMac, outputStream );
@ -221,6 +221,6 @@ public class PlfLfo
{ {
_rgLfoData[i].writeTo( outputStream ); _rgLfoData[i].writeTo( outputStream );
} }
fib.setLcbPlfLfo( outputStream.getOffset() - offset ); fib.setLcbPlfLfo( outputStream.size() - offset );
} }
} }

View File

@ -17,12 +17,12 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
/** /**
@ -88,7 +88,7 @@ public final class RevisionMarkAuthorTable {
* @param tableStream the table stream to write to. * @param tableStream the table stream to write to.
* @throws IOException if an error occurs while writing. * @throws IOException if an error occurs while writing.
*/ */
public void writeTo( HWPFOutputStream tableStream ) throws IOException public void writeTo( ByteArrayOutputStream tableStream ) throws IOException
{ {
SttbUtils.writeSttbfRMark( entries, tableStream ); SttbUtils.writeSttbfRMark( entries, tableStream );
} }

View File

@ -16,12 +16,12 @@
==================================================================== */ ==================================================================== */
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
/** /**
@ -77,7 +77,7 @@ public final class SavedByTable
* @throws IOException * @throws IOException
* if an error occurs while writing. * if an error occurs while writing.
*/ */
public void writeTo( HWPFOutputStream tableStream ) throws IOException public void writeTo( ByteArrayOutputStream tableStream ) throws IOException
{ {
String[] toSave = new String[entries.length * 2]; String[] toSave = new String[entries.length * 2];
int counter = 0; int counter = 0;

View File

@ -17,13 +17,13 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
@ -168,18 +168,18 @@ public class SectionTable
@Deprecated @Deprecated
public void writeTo( HWPFFileSystem sys, int fcMin ) throws IOException public void writeTo( HWPFFileSystem sys, int fcMin ) throws IOException
{ {
HWPFOutputStream docStream = sys.getStream( "WordDocument" ); ByteArrayOutputStream docStream = sys.getStream( "WordDocument" );
HWPFOutputStream tableStream = sys.getStream( "1Table" ); ByteArrayOutputStream tableStream = sys.getStream( "1Table" );
writeTo( docStream, tableStream ); writeTo( docStream, tableStream );
} }
public void writeTo( public void writeTo(
HWPFOutputStream wordDocumentStream, ByteArrayOutputStream wordDocumentStream,
HWPFOutputStream tableStream ) throws IOException ByteArrayOutputStream tableStream ) throws IOException
{ {
int offset = wordDocumentStream.getOffset(); int offset = wordDocumentStream.size();
int len = _sections.size(); int len = _sections.size();
PlexOfCps plex = new PlexOfCps(SED_SIZE); PlexOfCps plex = new PlexOfCps(SED_SIZE);
@ -220,7 +220,7 @@ public class SectionTable
plex.addProperty(property); plex.addProperty(property);
offset = wordDocumentStream.getOffset(); offset = wordDocumentStream.size();
} }
tableStream.write(plex.toByteArray()); tableStream.write(plex.toByteArray());
} }

View File

@ -17,8 +17,8 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
/** /**
@ -53,24 +53,22 @@ class SttbUtils
.getData(); .getData();
} }
static void writeSttbfBkmk( String[] data, HWPFOutputStream tableStream ) static void writeSttbfBkmk( String[] data, OutputStream tableStream )
throws IOException throws IOException
{ {
tableStream.write( new Sttb( CDATA_SIZE_STTBF_BKMK, data ).serialize() ); tableStream.write( new Sttb( CDATA_SIZE_STTBF_BKMK, data ).serialize() );
} }
static void writeSttbfRMark( String[] data, HWPFOutputStream tableStream ) static void writeSttbfRMark( String[] data, OutputStream tableStream )
throws IOException throws IOException
{ {
tableStream.write( new Sttb( CDATA_SIZE_STTBF_R_MARK, data ) tableStream.write( new Sttb( CDATA_SIZE_STTBF_R_MARK, data ).serialize() );
.serialize() );
} }
static void writeSttbSavedBy( String[] data, HWPFOutputStream tableStream ) static void writeSttbSavedBy( String[] data, OutputStream tableStream )
throws IOException throws IOException
{ {
tableStream.write( new Sttb( CDATA_SIZE_STTB_SAVED_BY, data ) tableStream.write( new Sttb( CDATA_SIZE_STTB_SAVED_BY, data ).serialize() );
.serialize() );
} }
} }

View File

@ -18,8 +18,8 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.hwpf.sprm.CharacterSprmUncompressor; import org.apache.poi.hwpf.sprm.CharacterSprmUncompressor;
import org.apache.poi.hwpf.sprm.ParagraphSprmUncompressor; import org.apache.poi.hwpf.sprm.ParagraphSprmUncompressor;
import org.apache.poi.hwpf.usermodel.CharacterProperties; import org.apache.poi.hwpf.usermodel.CharacterProperties;
@ -123,7 +123,7 @@ public final class StyleSheet implements HDFType {
} }
} }
public void writeTo(HWPFOutputStream out) public void writeTo(OutputStream out)
throws IOException throws IOException
{ {

View File

@ -16,6 +16,7 @@
==================================================================== */ ==================================================================== */
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
@ -24,7 +25,6 @@ import java.util.Comparator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.poifs.common.POIFSConstants; import org.apache.poi.poifs.common.POIFSConstants;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
@ -413,14 +413,14 @@ public class TextPieceTable implements CharIndexTranslator {
return _textPiecesFCOrder.get(low + 1).getPieceDescriptor().getFilePosition(); return _textPiecesFCOrder.get(low + 1).getPieceDescriptor().getFilePosition();
} }
public byte[] writeTo(HWPFOutputStream docStream) throws IOException { public byte[] writeTo(ByteArrayOutputStream docStream) throws IOException {
PlexOfCps textPlex = new PlexOfCps(PieceDescriptor.getSizeInBytes()); PlexOfCps textPlex = new PlexOfCps(PieceDescriptor.getSizeInBytes());
// int fcMin = docStream.getOffset(); // int fcMin = docStream.getOffset();
for (TextPiece next : _textPieces) { for (TextPiece next : _textPieces) {
PieceDescriptor pd = next.getPieceDescriptor(); PieceDescriptor pd = next.getPieceDescriptor();
int offset = docStream.getOffset(); int offset = docStream.size();
int mod = (offset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE); int mod = (offset % POIFSConstants.SMALLER_BIG_BLOCK_SIZE);
if (mod != 0) { if (mod != 0) {
mod = POIFSConstants.SMALLER_BIG_BLOCK_SIZE - mod; mod = POIFSConstants.SMALLER_BIG_BLOCK_SIZE - mod;
@ -429,7 +429,7 @@ public class TextPieceTable implements CharIndexTranslator {
} }
// set the text piece position to the current docStream offset. // set the text piece position to the current docStream offset.
pd.setFilePosition(docStream.getOffset()); pd.setFilePosition(docStream.size());
// write the text to the docstream and save the piece descriptor to // write the text to the docstream and save the piece descriptor to
// the // the

View File

@ -18,6 +18,7 @@
package org.apache.poi.hwpf.model.io; package org.apache.poi.hwpf.model.io;
import java.io.ByteArrayOutputStream;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -26,16 +27,16 @@ import org.apache.poi.util.Internal;
@Internal @Internal
public final class HWPFFileSystem public final class HWPFFileSystem
{ {
Map<String, HWPFOutputStream> _streams = new HashMap<String, HWPFOutputStream>(); private Map<String, ByteArrayOutputStream> _streams = new HashMap<String, ByteArrayOutputStream>();
public HWPFFileSystem() public HWPFFileSystem()
{ {
_streams.put("WordDocument", new HWPFOutputStream()); _streams.put("WordDocument", new ByteArrayOutputStream());
_streams.put("1Table", new HWPFOutputStream()); _streams.put("1Table", new ByteArrayOutputStream());
_streams.put("Data", new HWPFOutputStream()); _streams.put("Data", new ByteArrayOutputStream());
} }
public HWPFOutputStream getStream(String name) public ByteArrayOutputStream getStream(String name)
{ {
return _streams.get(name); return _streams.get(name);
} }

View File

@ -1,51 +0,0 @@
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
package org.apache.poi.hwpf.model.io;
import java.io.ByteArrayOutputStream;
import org.apache.poi.util.Internal;
@Internal
public final class HWPFOutputStream extends ByteArrayOutputStream {
int _offset;
public HWPFOutputStream() {
super();
}
public int getOffset() {
return _offset;
}
public synchronized void reset() {
super.reset();
_offset = 0;
}
public synchronized void write(byte[] buf, int off, int len) {
super.write(buf, off, len);
_offset += len;
}
public synchronized void write(int b) {
super.write(b);
_offset++;
}
}

View File

@ -17,19 +17,23 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import junit.framework.*; import static org.junit.Assert.assertTrue;
import org.apache.poi.hwpf.*;
import org.apache.poi.hwpf.model.io.*;
public final class TestFontTable import java.io.ByteArrayOutputStream;
extends TestCase import java.io.IOException;
{
import org.apache.poi.hwpf.HWPFDocFixture;
import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public final class TestFontTable {
private FontTable _fontTable = null; private FontTable _fontTable = null;
private HWPFDocFixture _hWPFDocFixture; private HWPFDocFixture _hWPFDocFixture;
public void testReadWrite() @Test
throws Exception public void testReadWrite() throws IOException {
{
FileInformationBlock fib = _hWPFDocFixture._fib; FileInformationBlock fib = _hWPFDocFixture._fib;
byte[] tableStream = _hWPFDocFixture._tableStream; byte[] tableStream = _hWPFDocFixture._tableStream;
@ -41,7 +45,7 @@ public final class TestFontTable
HWPFFileSystem fileSys = new HWPFFileSystem(); HWPFFileSystem fileSys = new HWPFFileSystem();
_fontTable.writeTo(fileSys); _fontTable.writeTo(fileSys);
HWPFOutputStream tableOut = fileSys.getStream("1Table"); ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
byte[] newTableStream = tableOut.toByteArray(); byte[] newTableStream = tableOut.toByteArray();
@ -53,25 +57,15 @@ public final class TestFontTable
} }
@Override @Before
protected void setUp() public void setUp() throws IOException {
throws Exception
{
super.setUp();
/**@todo verify the constructors*/
_hWPFDocFixture = new HWPFDocFixture(this, HWPFDocFixture.DEFAULT_TEST_FILE); _hWPFDocFixture = new HWPFDocFixture(this, HWPFDocFixture.DEFAULT_TEST_FILE);
_hWPFDocFixture.setUp(); _hWPFDocFixture.setUp();
} }
@Override @After
protected void tearDown() public void tearDown() throws IOException {
throws Exception
{
_hWPFDocFixture.tearDown(); _hWPFDocFixture.tearDown();
_hWPFDocFixture = null;
super.tearDown();
} }
} }

View File

@ -19,11 +19,11 @@ package org.apache.poi.hwpf.model;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import org.apache.poi.hwpf.HWPFTestCase; import org.apache.poi.hwpf.HWPFTestCase;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.junit.Test; import org.junit.Test;
public final class TestListTables extends HWPFTestCase { public final class TestListTables extends HWPFTestCase {
@ -43,7 +43,7 @@ public final class TestListTables extends HWPFTestCase {
ListTables listTables = new ListTables(tableStream, listOffset, lfoOffset, bLfoOffset); ListTables listTables = new ListTables(tableStream, listOffset, lfoOffset, bLfoOffset);
HWPFFileSystem fileSys = new HWPFFileSystem(); HWPFFileSystem fileSys = new HWPFFileSystem();
HWPFOutputStream tableOut = fileSys.getStream("1Table"); ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
listTables.writeListDataTo(fib, tableOut); listTables.writeListDataTo(fib, tableOut);
listTables.writeListOverridesTo(fib, tableOut); listTables.writeListOverridesTo(fib, tableOut);

View File

@ -17,29 +17,30 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import java.util.List; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import junit.framework.TestCase; import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.poi.hwpf.HWPFDocFixture; import org.apache.poi.hwpf.HWPFDocFixture;
import org.apache.poi.hwpf.HWPFTestDataSamples; import org.apache.poi.hwpf.HWPFTestDataSamples;
import org.apache.poi.hwpf.model.io.HWPFFileSystem; import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.apache.poi.hwpf.model.io.HWPFOutputStream; import org.junit.Test;
public final class TestPAPBinTable extends TestCase public final class TestPAPBinTable {
{
public void testObIs() @Test
{ public void testObIs() throws IOException {
// shall not fail with assertions on // shall not fail with assertions on
HWPFTestDataSamples.openSampleFile( "ob_is.doc" ); HWPFTestDataSamples.openSampleFile( "ob_is.doc" ).close();;
} }
public void testReadWrite() throws Exception @Test
{ public void testReadWrite() throws IOException {
/** @todo verify the constructors */ /** @todo verify the constructors */
HWPFDocFixture _hWPFDocFixture = new HWPFDocFixture( this, HWPFDocFixture _hWPFDocFixture = new HWPFDocFixture( this, HWPFDocFixture.DEFAULT_TEST_FILE );
HWPFDocFixture.DEFAULT_TEST_FILE );
_hWPFDocFixture.setUp(); _hWPFDocFixture.setUp();
TextPieceTable fakeTPT = new TextPieceTable(); TextPieceTable fakeTPT = new TextPieceTable();
@ -52,8 +53,8 @@ public final class TestPAPBinTable extends TestCase
null, fib.getFcPlcfbtePapx(), fib.getLcbPlcfbtePapx(), fakeTPT ); null, fib.getFcPlcfbtePapx(), fib.getLcbPlcfbtePapx(), fakeTPT );
HWPFFileSystem fileSys = new HWPFFileSystem(); HWPFFileSystem fileSys = new HWPFFileSystem();
HWPFOutputStream tableOut = fileSys.getStream( "1Table" ); ByteArrayOutputStream tableOut = fileSys.getStream( "1Table" );
HWPFOutputStream mainOut = fileSys.getStream( "WordDocument" ); ByteArrayOutputStream mainOut = fileSys.getStream( "WordDocument" );
_pAPBinTable.writeTo( mainOut, tableOut, fakeTPT ); _pAPBinTable.writeTo( mainOut, tableOut, fakeTPT );
byte[] newTableStream = tableOut.toByteArray(); byte[] newTableStream = tableOut.toByteArray();

View File

@ -17,25 +17,29 @@
package org.apache.poi.hwpf.model; package org.apache.poi.hwpf.model;
import junit.framework.*; import static org.junit.Assert.assertEquals;
import org.apache.poi.hwpf.*; import java.io.ByteArrayOutputStream;
import org.apache.poi.hwpf.model.io.*; import java.io.IOException;
public final class TestStyleSheet import org.apache.poi.hwpf.HWPFDocFixture;
extends TestCase import org.apache.poi.hwpf.model.io.HWPFFileSystem;
{ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public final class TestStyleSheet {
private StyleSheet _styleSheet = null; private StyleSheet _styleSheet = null;
private HWPFDocFixture _hWPFDocFixture; private HWPFDocFixture _hWPFDocFixture;
public void testReadWrite() @Test
throws Exception public void testReadWrite() throws IOException
{ {
HWPFFileSystem fileSys = new HWPFFileSystem(); HWPFFileSystem fileSys = new HWPFFileSystem();
HWPFOutputStream tableOut = fileSys.getStream("1Table"); ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
HWPFOutputStream mainOut = fileSys.getStream("WordDocument"); ByteArrayOutputStream mainOut = fileSys.getStream("WordDocument");
_styleSheet.writeTo(tableOut); _styleSheet.writeTo(tableOut);
@ -43,14 +47,13 @@ public final class TestStyleSheet
StyleSheet newStyleSheet = new StyleSheet(newTableStream, 0); StyleSheet newStyleSheet = new StyleSheet(newTableStream, 0);
assertEquals(newStyleSheet, _styleSheet); assertEquals(newStyleSheet, _styleSheet);
} }
public void testReadWriteFromNonZeroOffset() @Test
throws Exception public void testReadWriteFromNonZeroOffset() throws IOException
{ {
HWPFFileSystem fileSys = new HWPFFileSystem(); HWPFFileSystem fileSys = new HWPFFileSystem();
HWPFOutputStream tableOut = fileSys.getStream("1Table"); ByteArrayOutputStream tableOut = fileSys.getStream("1Table");
tableOut.write(new byte[20]); // 20 bytes of whatever at the front. tableOut.write(new byte[20]); // 20 bytes of whatever at the front.
_styleSheet.writeTo(tableOut); _styleSheet.writeTo(tableOut);
@ -61,11 +64,8 @@ public final class TestStyleSheet
assertEquals(newStyleSheet, _styleSheet); assertEquals(newStyleSheet, _styleSheet);
} }
@Override @Before
protected void setUp() public void setUp() throws IOException {
throws Exception
{
super.setUp();
/**@todo verify the constructors*/ /**@todo verify the constructors*/
_hWPFDocFixture = new HWPFDocFixture(this, HWPFDocFixture.DEFAULT_TEST_FILE); _hWPFDocFixture = new HWPFDocFixture(this, HWPFDocFixture.DEFAULT_TEST_FILE);
_hWPFDocFixture.setUp(); _hWPFDocFixture.setUp();
@ -77,15 +77,11 @@ protected void setUp()
_styleSheet = new StyleSheet(tableStream, fib.getFcStshf()); _styleSheet = new StyleSheet(tableStream, fib.getFcStshf());
} }
@Override @After
protected void tearDown() public void tearDown() throws Exception {
throws Exception
{
_styleSheet = null; _styleSheet = null;
_hWPFDocFixture.tearDown(); _hWPFDocFixture.tearDown();
_hWPFDocFixture = null; _hWPFDocFixture = null;
super.tearDown();
} }
} }

View File

@ -16,10 +16,10 @@
==================================================================== */ ==================================================================== */
package org.apache.poi.hwpf.usermodel; package org.apache.poi.hwpf.usermodel;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.apache.poi.POITestCase.assertContains; import static org.apache.poi.POITestCase.assertContains;
import static org.apache.poi.POITestCase.assertNotContained; import static org.apache.poi.POITestCase.assertNotContained;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
@ -29,7 +29,6 @@ import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import junit.framework.TestCase;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.poi.POIDataSamples; import org.apache.poi.POIDataSamples;
import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.HWPFDocument;
@ -43,7 +42,6 @@ import org.apache.poi.hwpf.model.FieldsDocumentPart;
import org.apache.poi.hwpf.model.FileInformationBlock; import org.apache.poi.hwpf.model.FileInformationBlock;
import org.apache.poi.hwpf.model.PlexOfField; import org.apache.poi.hwpf.model.PlexOfField;
import org.apache.poi.hwpf.model.SubdocumentType; import org.apache.poi.hwpf.model.SubdocumentType;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
@ -51,6 +49,8 @@ import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger; import org.apache.poi.util.POILogger;
import org.junit.Test; import org.junit.Test;
import junit.framework.TestCase;
/** /**
* Test different problems reported in the Apache Bugzilla * Test different problems reported in the Apache Bugzilla
* against HWPF * against HWPF
@ -607,7 +607,7 @@ public class TestBugs{
System.arraycopy(doc.getTableStream(), doc.getFileInformationBlock() System.arraycopy(doc.getTableStream(), doc.getFileInformationBlock()
.getFcDop(), originalData, 0, originalData.length); .getFcDop(), originalData, 0, originalData.length);
HWPFOutputStream outputStream = new HWPFOutputStream(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
doc.getDocProperties().writeTo(outputStream); doc.getDocProperties().writeTo(outputStream);
final byte[] oldData = outputStream.toByteArray(); final byte[] oldData = outputStream.toByteArray();
@ -620,7 +620,7 @@ public class TestBugs{
doc = HWPFTestDataSamples.writeOutAndReadBack(doc); doc = HWPFTestDataSamples.writeOutAndReadBack(doc);
outputStream = new HWPFOutputStream(); outputStream = new ByteArrayOutputStream();
doc.getDocProperties().writeTo(outputStream); doc.getDocProperties().writeTo(outputStream);
final byte[] newData = outputStream.toByteArray(); final byte[] newData = outputStream.toByteArray();