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 000000000..b4b0a4c6c Binary files /dev/null and b/src/testcases/org/apache/poi/hssf/data/27852.xls differ 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); + } }