From 8b1e706aeb909ec7b336b87cd33ab6887a936829 Mon Sep 17 00:00:00 2001 From: Avik Sengupta Date: Thu, 28 Apr 2005 14:31:00 +0000 Subject: [PATCH] bug 27852 - patch by Brice Copy git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353658 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/hssf/record/NameRecord.java | 4 ++-- .../org/apache/poi/hssf/data/27852.xls | Bin 0 -> 23040 bytes .../org/apache/poi/hssf/usermodel/TestBugs.java | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 src/testcases/org/apache/poi/hssf/data/27852.xls diff --git a/src/java/org/apache/poi/hssf/record/NameRecord.java b/src/java/org/apache/poi/hssf/record/NameRecord.java index a1b9adf43..1ecdb9d09 100644 --- a/src/java/org/apache/poi/hssf/record/NameRecord.java +++ b/src/java/org/apache/poi/hssf/record/NameRecord.java @@ -617,7 +617,7 @@ public class NameRecord extends Record { * @return extern sheet index */ public short getExternSheetNumber(){ - if (field_13_name_definition == null) return 0; + if (field_13_name_definition == null || field_13_name_definition.isEmpty()) return 0; Ptg ptg = (Ptg) field_13_name_definition.peek(); short result = 0; @@ -664,7 +664,7 @@ public class NameRecord extends Record { * @return area reference */ public String getAreaReference(Workbook book){ - if (field_13_name_definition == null) return "#REF!"; + if (field_13_name_definition == null || field_13_name_definition.isEmpty()) return "#REF!"; Ptg ptg = (Ptg) field_13_name_definition.peek(); String result = ""; diff --git a/src/testcases/org/apache/poi/hssf/data/27852.xls b/src/testcases/org/apache/poi/hssf/data/27852.xls new file mode 100644 index 0000000000000000000000000000000000000000..b4b0a4c6cd4f917c05afc8e72403a19b2ccc366f GIT binary patch literal 23040 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 K6DwD?vHu&A0rX%1 literal 0 HcmV?d00001 diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java index 5bfa0c4f0..38ad0da14 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java @@ -491,6 +491,22 @@ extends TestCase { assertTrue("No Exceptions while reading file", true); } + + /**names and macros */ + public void test27852() throws java.io.IOException { + String filename = System.getProperty("HSSF.testdata.path"); + filename=filename+"/27852.xls"; + FileInputStream in = new FileInputStream(filename); + HSSFWorkbook wb = new HSSFWorkbook(in); + assertTrue("No Exceptions while reading file", true); + for(int i = 0 ; i < wb.getNumberOfNames() ; i++) + { + HSSFName name = wb.getNameAt(i); + name.getNameName(); + name.getReference(); + } + assertTrue("No Exceptions till here!", true); + } }