HSSF: Try to handle cases where the length does not match the actual data while cloning, we see this in some documents
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1786431 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
69b260f538
commit
c07c41659f
@ -177,10 +177,10 @@ public class TestAllFiles {
|
|||||||
HANDLERS.put("spreadsheet/test_properties1", new NullFileHandler());
|
HANDLERS.put("spreadsheet/test_properties1", new NullFileHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Set<String> unmodifiableHashSet(String... a) {
|
private static Set<String> unmodifiableHashSet(String... a) {
|
||||||
return Collections.unmodifiableSet(hashSet(a));
|
return Collections.unmodifiableSet(hashSet(a));
|
||||||
}
|
}
|
||||||
private static final Set<String> hashSet(String... a) {
|
private static Set<String> hashSet(String... a) {
|
||||||
return new HashSet<String>(Arrays.asList(a));
|
return new HashSet<String>(Arrays.asList(a));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,12 +279,10 @@ public class TestAllFiles {
|
|||||||
// sheet cloning errors
|
// sheet cloning errors
|
||||||
"spreadsheet/47813.xlsx",
|
"spreadsheet/47813.xlsx",
|
||||||
"spreadsheet/56450.xls",
|
"spreadsheet/56450.xls",
|
||||||
"spreadsheet/57231_MixedGasReport.xls",
|
|
||||||
"spreadsheet/OddStyleRecord.xls",
|
"spreadsheet/OddStyleRecord.xls",
|
||||||
"spreadsheet/WithChartSheet.xlsx",
|
"spreadsheet/WithChartSheet.xlsx",
|
||||||
"spreadsheet/chart_sheet.xlsx",
|
"spreadsheet/chart_sheet.xlsx",
|
||||||
"spreadsheet/SimpleScatterChart.xlsx",
|
"spreadsheet/SimpleScatterChart.xlsx"
|
||||||
"spreadsheet/ConditionalFormattingSamples.xls"
|
|
||||||
);
|
);
|
||||||
|
|
||||||
private static final Set<String> IGNORED = unmodifiableHashSet(
|
private static final Set<String> IGNORED = unmodifiableHashSet(
|
||||||
|
@ -462,9 +462,11 @@ public final class CFRule12Record extends CFRuleBase implements FutureRecord, Cl
|
|||||||
|
|
||||||
super.copyTo(rec);
|
super.copyTo(rec);
|
||||||
|
|
||||||
rec.ext_formatting_length = ext_formatting_length;
|
// use min() to gracefully handle cases where the length-property and the array-lenght do not match
|
||||||
|
// we saw some such files in circulation
|
||||||
|
rec.ext_formatting_length = Math.min(ext_formatting_length, ext_formatting_data.length);
|
||||||
rec.ext_formatting_data = new byte[ext_formatting_length];
|
rec.ext_formatting_data = new byte[ext_formatting_length];
|
||||||
System.arraycopy(ext_formatting_data, 0, rec.ext_formatting_data, 0, ext_formatting_length);
|
System.arraycopy(ext_formatting_data, 0, rec.ext_formatting_data, 0, rec.ext_formatting_length);
|
||||||
|
|
||||||
rec.formula_scale = formula_scale.copy();
|
rec.formula_scale = formula_scale.copy();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user