aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/documentation/content/xdocs/status.xml1
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java5
-rwxr-xr-xsrc/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug50075.java41
-rw-r--r--test-data/document/Bug50075.docbin0 -> 55296 bytes
4 files changed, 46 insertions, 1 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml
index 3e7f469df8..a0cf1a988a 100644
--- a/src/documentation/content/xdocs/status.xml
+++ b/src/documentation/content/xdocs/status.xml
@@ -34,6 +34,7 @@
<changes>
<release version="3.7-beta4" date="2010-??-??">
+ <action dev="poi-developers" type="fix">50075 - avoid NPE in ListLevel.getNumberText() when numberText is null </action>
<action dev="poi-developers" type="fix">50067 - marked commons-logging and log4j as optional dependencies in POI poms</action>
<action dev="poi-developers" type="add">49928 - allow overridden built-in formats in XSSFCellStyle</action>
<action dev="poi-developers" type="fix">49919 - support for BorderCode in HWPF</action>
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java b/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java
index d6392af776..b8939b3817 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java
@@ -141,7 +141,10 @@ public final class ListLevel
public String getNumberText()
{
- return new String(_numberText);
+ if (_numberText != null)
+ return new String(_numberText);
+ else
+ return null;
}
public void setStartAt(int startAt)
diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug50075.java b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug50075.java
new file mode 100755
index 0000000000..24ac72fe40
--- /dev/null
+++ b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug50075.java
@@ -0,0 +1,41 @@
+/* ====================================================================
+ 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.usermodel;
+
+import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
+import org.apache.poi.hwpf.model.ListFormatOverride;
+import org.apache.poi.hwpf.model.ListLevel;
+
+import junit.framework.TestCase;
+
+public class TestBug50075 extends TestCase
+{
+
+ public void test() {
+ HWPFDocument doc = HWPFTestDataSamples.openSampleFile("Bug50075.doc");
+ Range range = doc.getRange();
+ assertEquals(1, range.numParagraphs());
+ ListEntry entry = (ListEntry) range.getParagraph(0);
+ ListFormatOverride override = doc.getListTables().getOverride(entry.getIlfo());
+ ListLevel level = doc.getListTables().getLevel(override.getLsid(), entry.getIlvl());
+
+ // the bug reproduces, if this call fails with NullPointerException
+ level.getNumberText();
+ }
+
+}
diff --git a/test-data/document/Bug50075.doc b/test-data/document/Bug50075.doc
new file mode 100644
index 0000000000..15303a46fe
--- /dev/null
+++ b/test-data/document/Bug50075.doc
Binary files differ