<changes>
<release version="3.6-beta1" date="2009-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">48038 - handle reading HWPF stylesheets from non zero offsets</action>
<action dev="POI-DEVELOPERS" type="add">When running the "compile-ooxml-xsds" ant task, also generate the source jar for the OOXML Schemas</action>
<action dev="POI-DEVELOPERS" type="fix">45672 - improve handling by MissingRecordAwareHSSFListener of records that cover multiple cells (MulBlankRecord and MulRKRecord)</action>
<action dev="POI-DEVELOPERS" type="fix">48096 - relaxed validation check in RecalcIdRecord</action>
*/
public StyleSheet(byte[] tableStream, int offset)
{
+ int startOffset = offset;
_stshiLength = LittleEndian.getShort(tableStream, offset);
offset += LittleEndian.SHORT_SIZE;
int stdCount = LittleEndian.getShort(tableStream, offset);
_rgftc[2] = LittleEndian.getShort(tableStream, offset);
offset += LittleEndian.SHORT_SIZE;
- offset = (LittleEndian.SHORT_SIZE + _stshiLength);
+ offset = startOffset + LittleEndian.SHORT_SIZE + _stshiLength;
_styleDescriptions = new StyleDescription[stdCount];
for(int x = 0; x < stdCount; x++)
{
}
+ public void testReadWriteFromNonZeroOffset()
+ throws Exception
+ {
+ HWPFFileSystem fileSys = new HWPFFileSystem();
+ HWPFOutputStream tableOut = fileSys.getStream("1Table");
+
+ tableOut.write(new byte[20]); // 20 bytes of whatever at the front.
+ _styleSheet.writeTo(tableOut);
+
+ byte[] newTableStream = tableOut.toByteArray();
+
+ StyleSheet newStyleSheet = new StyleSheet(newTableStream, 20);
+ assertEquals(newStyleSheet, _styleSheet);
+ }
+
protected void setUp()
throws Exception
{