From ad49ccab2d9cfdfba6f07a3ae991c3c8be909c56 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Tue, 4 Dec 2007 12:33:24 +0000 Subject: [PATCH] Fix work bug #42799 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@600910 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/org/apache/poi/hwpf/model/ListTables.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java b/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java index cec20c91e6..4196566d9a 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java @@ -19,6 +19,8 @@ package org.apache.poi.hwpf.model; import org.apache.poi.util.LittleEndian; +import org.apache.poi.util.POILogFactory; +import org.apache.poi.util.POILogger; import org.apache.poi.hwpf.model.io.*; @@ -37,6 +39,7 @@ public class ListTables { private static final int LIST_DATA_SIZE = 28; private static final int LIST_FORMAT_OVERRIDE_SIZE = 16; + private static POILogger log = POILogFactory.getLogger(ListTables.class); HashMap _listMap = new HashMap(); ArrayList _overrideList = new ArrayList(); @@ -189,8 +192,13 @@ public class ListTables public ListLevel getLevel(int listID, int level) { ListData lst = (ListData)_listMap.get(new Integer(listID)); - ListLevel lvl = lst.getLevels()[level]; - return lvl; + if(level < lst.numLevels()) { + ListLevel lvl = lst.getLevels()[level]; + return lvl; + } else { + log.log(POILogger.WARN, "Requested level " + level + " which was greater than the maximum defined (" + lst.numLevels() + ")"); + return null; + } } public ListData getListData(int listID) -- 2.39.5