diff --git a/src/java/org/apache/poi/hssf/model/Workbook.java b/src/java/org/apache/poi/hssf/model/Workbook.java index 89ce4def6..4696d8985 100644 --- a/src/java/org/apache/poi/hssf/model/Workbook.java +++ b/src/java/org/apache/poi/hssf/model/Workbook.java @@ -2077,6 +2077,7 @@ public class Workbook implements Model { palette = createPalette(); //Add the palette record after the bof which is always the first record records.add(1, palette); + records.setPalettepos(1); } return palette; } diff --git a/src/java/org/apache/poi/hssf/model/WorkbookRecordList.java b/src/java/org/apache/poi/hssf/model/WorkbookRecordList.java index 90eefaefa..654ea8878 100644 --- a/src/java/org/apache/poi/hssf/model/WorkbookRecordList.java +++ b/src/java/org/apache/poi/hssf/model/WorkbookRecordList.java @@ -103,7 +103,7 @@ public class WorkbookRecordList if (getBackuppos() >= pos) setBackuppos( backuppos + 1 ); if (getNamepos() >= pos) setNamepos(namepos+1); if (getSupbookpos() >= pos) setSupbookpos(supbookpos+1); - if (getPalettepos() >= pos) setPalettepos( palettepos + 1 ); + if ((getPalettepos() != -1) && (getPalettepos() >= pos)) setPalettepos( palettepos + 1 ); if (getExternsheetPos() >= pos) setExternsheetPos(getExternsheetPos() + 1); } @@ -128,7 +128,7 @@ public class WorkbookRecordList if (getBackuppos() >= pos) setBackuppos( backuppos - 1 ); if (getNamepos() >= pos) setNamepos(getNamepos()-1); if (getSupbookpos() >= pos) setSupbookpos(getSupbookpos()-1); - if (getPalettepos() >= pos) setPalettepos( palettepos - 1 ); + if ((getPalettepos() != -1) && (getPalettepos() >= pos)) setPalettepos( palettepos - 1 ); if (getExternsheetPos() >= pos) setExternsheetPos( getExternsheetPos() -1); }