]> source.dussan.org Git - poi.git/commitdiff
avoid NPE in ListLevel.getNumberText() when numberText is null, see Bugzilla 50075
authorYegor Kozlov <yegor@apache.org>
Thu, 14 Oct 2010 10:30:29 +0000 (10:30 +0000)
committerYegor Kozlov <yegor@apache.org>
Thu, 14 Oct 2010 10:30:29 +0000 (10:30 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1022456 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug50075.java [new file with mode: 0755]
test-data/document/Bug50075.doc [new file with mode: 0644]

index 3e7f469df8a8e7b6cd56a4e193ab2ff981e07cca..a0cf1a988a890c999eabfc21609e5d4a76d2a0b1 100644 (file)
@@ -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>
index d6392af776991419cc31234c70c72e3dd3bc326c..b8939b381779a78ab7ba8587065e9f23d800551d 100644 (file)
@@ -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 (executable)
index 0000000..24ac72f
--- /dev/null
@@ -0,0 +1,41 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+package org.apache.poi.hwpf.usermodel;\r
+\r
+import org.apache.poi.hwpf.HWPFDocument;\r
+import org.apache.poi.hwpf.HWPFTestDataSamples;\r
+import org.apache.poi.hwpf.model.ListFormatOverride;\r
+import org.apache.poi.hwpf.model.ListLevel;\r
+\r
+import junit.framework.TestCase;\r
+\r
+public class TestBug50075 extends TestCase\r
+{\r
+\r
+  public void test() {\r
+    HWPFDocument doc = HWPFTestDataSamples.openSampleFile("Bug50075.doc");\r
+    Range range = doc.getRange();\r
+    assertEquals(1, range.numParagraphs());\r
+    ListEntry entry = (ListEntry) range.getParagraph(0);\r
+    ListFormatOverride override = doc.getListTables().getOverride(entry.getIlfo());\r
+    ListLevel level = doc.getListTables().getLevel(override.getLsid(), entry.getIlvl());\r
+    \r
+    // the bug reproduces, if this call fails with NullPointerException\r
+    level.getNumberText();\r
+  }\r
+  \r
+}\r
diff --git a/test-data/document/Bug50075.doc b/test-data/document/Bug50075.doc
new file mode 100644 (file)
index 0000000..15303a4
Binary files /dev/null and b/test-data/document/Bug50075.doc differ