Browse Source

#55505 - CountryRecord not found

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1876805 13f79535-47bb-0310-9956-ffa450edef68
tags/before_ooxml_3rd_edition
Andreas Beeker 4 years ago
parent
commit
778f4f5d7d

+ 5
- 1
src/java/org/apache/poi/hssf/model/LinkTable.java View File

@@ -30,6 +30,7 @@ import org.apache.poi.hssf.record.ExternalNameRecord;
import org.apache.poi.hssf.record.NameCommentRecord;
import org.apache.poi.hssf.record.NameRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.SSTRecord;
import org.apache.poi.hssf.record.SupBookRecord;
import org.apache.poi.ss.formula.SheetNameFormatter;
import org.apache.poi.ss.formula.ptg.Area3DPtg;
@@ -271,7 +272,10 @@ final class LinkTable {

int idx = findFirstRecordLocBySid(CountryRecord.sid);
if (idx < 0) {
throw new RuntimeException("CountryRecord not found");
idx = findFirstRecordLocBySid(SSTRecord.sid) - 1;
if (idx < 0) {
throw new RuntimeException("CountryRecord or SSTRecord not found");
}
}
_workbookRecordList.add(idx + 1, _externSheetRecord);
_workbookRecordList.add(idx + 1, supbook);

+ 10
- 1
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java View File

@@ -59,7 +59,6 @@ import org.apache.poi.hssf.record.CellValueRecordInterface;
import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
import org.apache.poi.hssf.record.EmbeddedObjectRefSubRecord;
import org.apache.poi.hssf.record.NameRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.TabIdRecord;
import org.apache.poi.hssf.record.UnknownRecord;
import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate;
@@ -2887,6 +2886,11 @@ public final class TestBugs extends BaseTestBugzillaIssues {
}
}

@Test
public void test55505() throws IOException {
simpleTest("bug55505.xls");
}

@Test
public void test63940() throws IOException {
simpleTest("SUBSTITUTE.xls");
@@ -2910,6 +2914,11 @@ public final class TestBugs extends BaseTestBugzillaIssues {
HSSFRow r = s.createRow(10_000);
HSSFCell c = r.createCell(0);
c.setCellValue(10);

HSSFSheet tmpSheet = wb1.createSheet("POITESTSHEET");
tmpSheet.createRow(10).createCell(10).setCellValue("Test");
wb1.removeSheetAt(wb1.getSheetIndex(tmpSheet));

simpleTestHelper(wb1, fileName);

try (HSSFWorkbook wb2 = writeOutAndReadBack(wb1)) {

BIN
test-data/spreadsheet/bug55505.xls View File


Loading…
Cancel
Save