diff --git a/src/java/org/apache/poi/hssf/model/Workbook.java b/src/java/org/apache/poi/hssf/model/Workbook.java index da1aa129e..89ce4def6 100644 --- a/src/java/org/apache/poi/hssf/model/Workbook.java +++ b/src/java/org/apache/poi/hssf/model/Workbook.java @@ -2064,18 +2064,21 @@ public class Workbook implements Model { */ public PaletteRecord getCustomPalette() { - PaletteRecord palette; - Record rec = records.get(records.getPalettepos()); - if (rec instanceof PaletteRecord) - { - palette = (PaletteRecord) rec; - } - else - { - palette = createPalette(); - records.add(records.getPalettepos(), palette); - } - return palette; + PaletteRecord palette; + int palettePos = records.getPalettepos(); + if (palettePos != -1) { + Record rec = records.get(palettePos); + if (rec instanceof PaletteRecord) { + palette = (PaletteRecord) rec; + } else throw new RuntimeException("InternalError: Expected PaletteRecord but got a '"+rec+"'"); + } + else + { + palette = createPalette(); + //Add the palette record after the bof which is always the first record + records.add(1, palette); + } + return palette; }