While reading an Excel document I get the following exception org.apache.poi.hssf.record.RecordFormatException: Unhandled Continue Record followining class org.apache.poi.hssf.record.NameRecord at org.apache.poi.hssf.record.RecordFactoryInputStream.readNextRecord(RecordFactoryInputStream.java:345) at org.apache.poi.hssf.record.RecordFactoryInputStream.nextRecord(RecordFactoryInputStream.java:236) at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:442) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:263) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:188) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:170) at com.arlanis.udc.core.step.adapter.excel.util.ExcelUtils.getSheets(ExcelUtils.java:289) at com.arlanis.udc.ui.step.adapter.excel.job.FetchSheetNamesJob.run(FetchSheetNamesJob.java:78) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) (unfortunately I cannot attach the problematic document - internal, confidential etc) This is with latest 3.8 nightly build from http://encore.torchbox.com/poi-svn-build/ Attached is a patch which solves the problem for me
Created attachment 26278 [details] proposed fix
The proposed fix is dodgy. I'd rather not apply it without a junut test and a sample file. Do you know the origin of the problem file> What software / version of Excel created it? Try to re-save the problem file in Excel. Does the problem persist? Can you obfuscate the sensitive data and upload the file? Yegor
> Do you know the origin of the problem file> What software / version of Excel > created it? Try to re-save the problem file in Excel. Does the problem persist? No idea about which Excel version originally created the file. The problem persist if I read the file, change and save as a new file in Excel 2003 > Can you obfuscate the sensitive data and upload the file? I have a variant of the file which has obfuscated the date, where the problem persists. I have to get an OK to publish it. This may take some time.
Sorry, I have not got permission to publish the problematic file. We have tried internally to reproduce a similar document but to no avail. The problem ssems to be that there exist a name record which is too long, so a continue record had to be added. After this pattern was first created, all subsequent open/save processes just copied the record. It is not clear about how the record first entered the system (older office software, erroreous scripting with insufficient checking or whatever) It is also not clear if the document is valid at all. Different software reads the file differently. Some throw errors, some silently ignore the data etc. It is not possible to actually edit the name directly, so I assume that the data is not allowed (name value longer than 255 characters)
The max size of a Excel record is 8KB and it seems to be not enough in your case. Open the problematic file and find names with long formulas and descriptions. Can you post the longest formula or at least tell us its length? Run org.apache.poi.hssf.dev.BiffViewer. Does it dump name records? Can you post those bits? Yegor
I send the tail of a BiffViewer run. The mentioned record is the problematic part. If I remove this name the document loads fine without changes to POI ........... Offset=0x00004F70(20336) recno=609 sid=0x0018 size=0x0024(36) [NAME] .option flags = 0x0000 .keyboard shortcut = 0x00 .length of the name = 14 .extSheetIx(1-based, 0=Global)= 0 .sheetTabIx = 3 .Menu text length = 0 .Description text length= 0 .Help topic text length = 0 .Status bar text length = 0 .NameIsMultibyte = false .Name (Unicode text) = wCompareValue. .Formula (nTokens=1): org.apache.poi.hssf.record.formula.Ref3DPtg [sheetIx=10 ! $F$1006]R .Menu text = .Description text= .Help topic text = .Status bar text = [/NAME] Offset=0x00004F98(20376) recno=610 sid=0x0018 size=0x18A2(6306) [NAME] .option flags = 0x0000 .keyboard shortcut = 0x00 .length of the name = 16 .extSheetIx(1-based, 0=Global)= 0 .sheetTabIx = 3 .Menu text length = 0 .Description text length= 0 .Help topic text length = 0 .Status bar text length = 0 .NameIsMultibyte = false .Name (Unicode text) = wDataDatenSerie. .Formula (nTokens=1): [ArrayPtg] nRows = 696 nCols = 1 {97.65625;101.875;97.1875000000001;102.8125;96.71875;99.0625;102.34375;101.40625;98.59375;98.125;100;97.65625;97.65625;97.65625;99.5312500000001;99.0625;97.1875000000001;99.0625;98.125;98.59375;101.875;98.59375;99.0625;100.46875;101.40625;98.125;100;100.46875;100.9375;99.5312500000001;100;100.9375;99.5312500000001;102.34375;101.40625;100;99.0625;100;96.71875;100;97.1875000000001;98.125;99.5312500000001;102.34375;98.125;98.125;100.9375;100.46875;101.875;98.59375;99.5312500000001;100;100;99.5312500000001;101.40625;101.875;100.46875;100.46875;100;99.5312500000001;101.875;101.875;100;100.46875;100;100.46875;102.8125;100.46875;100.9375;101.40625;100.9375;100.9375;101.875;101.40625;102.34375;104.21875;101.40625;99.0625;100.9375;103.28125;99.0625;100;103.28125;98.59375;99.5312500000001;100.9375;100;100.9375;97.65625;97.1875000000001;98.125;101.875;99.0625;101.40625;104.21875;97.65625;101.875;102.34375;100.46875;100.46875;104.6875;99.5312500000001;100.9375;100.46875;100.9375;101.40625;102.8125;104.6875;102.34375;102.34375;102.8125;98.59375;104.21875;100;101.875;104.21875;102.34375;101.40625;102.34375;100.9375;100.9375;104.21875;99.0625;101.40625;100.9375;101.40625;101.40625;103.75;100;102.8125;100;100.9375;102.8125;100;102.34375;98.59375;98.125;96.71875;100;99.0625;97.1875000000001;98.125;98.59375;99.5312500000001;97.1875000000001;99.5312500000001;98.125;97.65625;99.5312500000001;96.25;101.40625;99.0625;100;99.0625;101.40625;99.5312500000001;100;96.25;99.5312500000001;100;100;97.65625;98.125;99.0625;98.125;100;97.1875000000001;98.125;99.0625;100;98.125;100;100.46875;99.5312500000001;100.46875;97.65625;98.125;100;100.46875;99.0625;97.1874999999999;97.65625;101.40625;95.8437499999999;100;99.0624999999999;98.1249999999999;100.46875;96.7187499999999;100;97.65625;99.0624999999999;99.0624999999999;100;98.5937499999999;96.7187499999999;98.5937499999999;99.5312499999999;99.5312499999999;99.5312499999999;96.7187499999999;100.9375;100.9375;96.7187499999999;99.5312499999999;98.1249999999999;97.1874999999999;100;99.5312499999999;101.40625;97.1874999999999;100;100;97.1874999999999;99.0624999999999;95.4374999999999;99.0624999999999;97.65625;99.0624999999999;95.8437499999999;99.5312499999999;96.2499999999999;97.1874999999999;97.65625;96.2499999999999;100.46875;102.8125;100;100.46875;100.46875;100.9375;99.0624999999999;99.0624999999999;99.0624999999999;101.40625;102.8125;99.0624999999999;98.5937499999999;104.6875;101.875;99.5312499999999;99.5312499999999;98.1249999999999;103.28125;100.9375;99.5312499999999;103.75;100.9375;101.875;102.8125;101.875;101.40625;102.34375;101.40625;100;98.5937499999999;100.9375;103.28125;101.40625;103.28125;98.5937499999999;100.46875;99.0624999999999;100.9375;100.9375;102.8125;100;100.9375;100;99.0624999999999;100.46875;103.28125;100.9375;100.46875;101.40625;100;101.875;99.5312499999999;101.40625;100.46875;102.34375;102.34375;99.5312499999999;102.8125;100.46875;101.875;101.40625;100.9375;102.34375;101.40625;100.46875;100.46875;102.8125;103.28125;99.5312499999999;98.5937499999999;100;102.34375;102.8125;100.9375;100;100.9375;100;100;102.8125;98.1249999999999;101.875;103.28125;101.875;99.5312499999999;102.8125;99.0624999999999;99.0624999999999;99.0624999999999;97.65625;99.0624999999999;99.0624999999999;99.5312499999999;99.0624999999999;101.875;99.0624999999999;99.0624999999999;100.46875;100.46875;99.0624999999999;100;100.9375;99.5312499999999;99.0624999999999;97.65625;97.1874999999999;97.1874999999999;97.1874999999999;98.5937499999999;100;99.0624999999999;98.1249999999999;100.9375;101.875;100.9375;99.5312499999999;99.5312499999999;100.9375;100.46875;100;96.7187499999999;101.40625;98.5937499999999;99.5312499999999;96.7187499999999;100;100.46875;99.0624999999999;100;96.78125;100.9375;100;98.5937500000001;98.5937500000001;99.53125;101.875;98.125;100.46875;98.125;100.9375;100;99.0625;98.5937500000001;97.65625;98.125;100.46875;97.65625;99.53125;100;97.1875;99.53125;100;97.65625;100.9375;101.875;99.0625;98.125;99.53125;100.46875;98.5937500000001;98.125;97.65625;99.53125;98.125;97.65625;100;98.125;98.5937500000001;99.53125;98.5937500000001;98.125;100.46875;99.0625;98.5937500000001;99.53125;100;100.46875;102.8125;99.53125;98.125;101.875;100.46875;99.53125;100.46875;104.6875;103.75;100.9375;100.9375;100.46875;103.28125;102.34375;101.40625;100.46875;102.34375;100.9375;100;97.1875;97.65625;101.875;100.46875;100.9375;100;99.53125;100.9375;99.53125;98.5937500000001;100.46875;101.875;101.40625;100.46875;96.78125;103.75;101.40625;101.40625;100.9375;101.40625;102.34375;100;100.9375;101.40625;103.75;100.46875;102.34375;101.875;101.875;101.875;103.28125;107.96875;103.75;102.34375;99.53125;104.21875;100;101.40625;102.34375;106.09375;100;103.75;103.28125;102.34375;104.6875;100;102.34375;100.9375;104.6875;104.21875;100.9375;102.8125;101.40625;100.9375;100.9375;100.46875;103.28125;100;99.53125;100;103.28125;100.9375;100;98.5937500000001;100;101.40625;101.875;102.8125;97.65625;98.5937500000001;101.875;97.65625;100.9375;100.46875;100;100;98.5937500000001;96.375;97.1875;98.125;97.65625;98.125;96.78125;97.65625;98.5937500000001;99.53125;97.65625;97.65625;98.125;95.15625;98.125;98.5937500000001;96.375;99.0625;96.78125;97.65625;100.9375;100;99.0625;98.5937500000001;96.78125;99.53125;99.0625;97.65625;106.09375;99.125;97.5;97.5;100;95.46875;100;100;99.53125;97.90625;97.90625;96.6875;99.125;97.90625;95.46875;99.53125;98.71875;97.09375;97.5;98.71875;98.71875;100;97.09375;98.71875;102.34375;97.90625;101.875;96.28125;97.5;96.6875;96.28125;97.5;93.84375;98.3125;97.09375;94.65625;97.5;95.0625;95.875;93.84375;97.90625;95.875;97.90625;97.5;96.28125;95.875;100.46875;97.90625;98.71875;97.90625;98.71875;101.875;98.71875;98.71875;98.3125;99.125;98.3125;98.3125;99.53125;97.90625;100.9375;100;98.3125;102.34375;100.9375;101.875;100;99.53125;97.90625;103.28125;103.28125;100.9375;99.53125;102.8125;100.9375;99.125;101.40625;100;99.125;100.9375;101.875;96.6875;100;100.9375;99.53125;101.40625;98.3125;100.46875;98.71875;97.5;100;101.40625;98.71875;100;100.46875;100;101.40625;98.3125;99.53125;100;100;100;100.9375;102.8125;99.125;101.40625;99.125;99.53125;100;104.21875;102.34375;100.46875;100.9375;101.875;101.40625;100;100;102.34375;102.34375;99.125;101.40625;100;100.46875;102.34375;101.40625;99.53125;100.9375;101.875;99.53125;99.125;101.40625;101.40625;99.53125;102.8125;99.125;101.875;101.875;100;99.125;99.125;101.40625;103.28125;101.875;99.125;102.8125;102.34375;98.3125;100.46875;101.875;101.875;104.21875;100.46875;101.875;97.09375;101.875;101.40625;99.125;100;101.40625;97.5;101.40625;102.34375;101.875;102.8125;98.71875;100.9375;99.53125;101.40625;100.9375;104.21875;101.40625}A .Menu text = .Description text= .Help topic text = .Status bar text = [/NAME] Offset=0x0000683E(26686) recno=611 sid=0x0018 size=0x1E21(7713) java.lang.RuntimeException: Buffer overrun at org.apache.poi.util.LittleEndianByteArrayInputStream.checkPosition(LittleEndianByteArrayInputStream.java:47) at org.apache.poi.util.LittleEndianByteArrayInputStream.readByte(LittleEndianByteArrayInputStream.java:55) at org.apache.poi.hssf.record.constant.ConstantValueParser.readAConstantValue(ConstantValueParser.java:58) at org.apache.poi.hssf.record.constant.ConstantValueParser.parse(ConstantValueParser.java:52) at org.apache.poi.hssf.record.formula.ArrayPtg$Initial.finishReading(ArrayPtg.java:261) at org.apache.poi.hssf.record.formula.Ptg.readTokens(Ptg.java:70) at org.apache.poi.ss.formula.Formula.getTokens(Formula.java:85) at org.apache.poi.hssf.record.NameRecord.toString(NameRecord.java:540) at org.apache.poi.hssf.dev.BiffViewer.createRecords(BiffViewer.java:97) at org.apache.poi.hssf.dev.BiffViewer.main(BiffViewer.java:416) at com.arlanis.exceltest.Main.main(Main.java:32)
Just wanted to ask if there are any news on this bug. Currently I maintain my patch in my own POI version, but I don't think this is optimal. The root of the problem, as far as I see is that the Excel file is a real ancient file (i.e. Excel/BIFF 5 or some such). I read that the maximum record length was much shorter in earlier Excel versions. At least the length of my Name record exceeds the maximum length of the (old) Excel file format, so that's where the Continue record comes from. However, I have not been able to create such a problematic file from scratch. I think it is a rather old file which was created in times / versions with much simpler validation rules. Best regards Dirk
In the file you're not allowed to share, is it only text that's private, or is it formulas+numbers+etc? If it's only the text strings, it's fairly easy to munge the file so that the text cells have dummy text in them. If it's formulas, number cells, comments etc that'd need protecting, then that's probably a bit much to munge by hand
> In the file you're not allowed to share, is it only text that's private, or is > it formulas+numbers+etc? If it's only the text strings, it's fairly easy to > munge the file so that the text cells have dummy text in them. If it's > formulas, number cells, comments etc that'd need protecting, then that's > probably a bit much to munge by hand I think it is general paranoia ;) I already changed any visible text to dummy values, but could still get no permission. Possibly the customer (or at least our contact) doesn't know the document contents itself any longer (it is a rather old file) and cannot or doesn't want to take any risks ;( It doesn't really help that there exist no easy way in Excel to show all contents... Dirk
(In reply to comment #9) > It doesn't really help that there exist no easy way in Excel to show all > contents... BiffViewer ought to be able to do that for you, certainly if you patch works and is applied it should be able to! :) Without a file to test against though, I think we're all a little reluctant to apply the patch, plus there's then no way to ensure we don't accidentally break it again in the future...
> > BiffViewer ought to be able to do that for you, certainly if you patch works > and is applied it should be able to! :) > Yes and no. For some developers / hackers the output of BiffViewer might suffice. I don't think the typical manager / secretary / data entry person (which is unfortunately my contact in this case) can be convinced that this goobledigook is actually the content of their precious Excel file ;) However, I have some more output from BiffViewer Offset=0x00000000(0) recno=1 sid=0x0809 size=0x0010(16) [BOF RECORD] .version = 0x0600 .type = 0x0005 (workbook) .build = 0x1FE9 .buildyear= 1997 .history = 0x0000C0C9 .reqver = 0x00000306 [/BOF RECORD] Offset=0x00000014(20) recno=2 sid=0x00E1 size=0x0002(2) [INTERFACEHDR] .codepage = 0x04B0 [/INTERFACEHDR] Offset=0x0000001A(26) recno=3 sid=0x00C1 size=0x0002(2) [MMS] .addMenu = 0 .delMenu = 0 [/MMS] Offset=0x00000020(32) recno=4 sid=0x00E2 size=0x0000(0) [INTERFACEEND/] Offset=0x00000024(36) recno=5 sid=0x005C size=0x0070(112) [WRITEACCESS] .name = Dirk [/WRITEACCESS] Offset=0x00000098(152) recno=6 sid=0x0042 size=0x0002(2) [CODEPAGE] .codepage = 4b0 [/CODEPAGE] Offset=0x0000009E(158) recno=7 sid=0x0161 size=0x0002(2) [DSF] .options = 0x0000 [/DSF] Offset=0x000000A4(164) recno=8 sid=0x01C0 size=0x0000(0) [EXCEL9FILE] (0x1C0) [/EXCEL9FILE] ... so I think I was right about that the file was rather old (1997) and from ancient Excel version. However this doesn't help me about how to create a sample Excel file which shows the problem ;)
It is clear why the exception happens - the formula consists of a very long array that doesn't fit in the NameRecord and the array's tail is stored in a ContinueRecord. But I don't understand how this array was saved. I tried to reproduced it in Excel 2003 and Excel 2007 with no luck. The length of a Excel formula is limited to 1024 characters, Excel silently truncates longer strings. You can't input an array of 696 elements in the Name dialog. I tried to set such a long array via VBA but it didn't work either. Excel truncates long VBA arrays to 256 values. Try to run the attached vbs script that I used for testing. To apply the proposed fix we need a test case - either a sample file or a description how to create it. Without additional info this bug will stay as "needinfo" Regards, Yegor
Created attachment 26365 [details] vba script that attempts to create a problem file
Just some ideas: - could this be some external component library work? I know about the limitations of the Excel solution, but there seems to be a whole lot of third party libraries which allow for larger data (however, I have this not set seet for name definitions, but for things like diagrams) - could this be some legacy mechanism like DDE/OLE (basically the data is really referenced in another file, but a copy of the data is stored in the Excel file in case the referenced file is lost) - could this be a number format problem (basically you set a array of float values (4 bytes per value IIRC), but on save the array was "expanded" because in the Excel file the string representations are stored, which are longer than 4 bytes per value) Best regards Dirk
Please post the same dump, but run BiffViewer with --biffhex --noint options. It should show raw hex dump of each BIFF record. I'm interested in the record at Offset=0x0000683E(26686). Yegor
Created attachment 26371 [details] BiffViewer dump of the problematic record
I attached the dump of the problematic record and the following record (which creates the ContinueRecord problem)
I think I figured out what was wrong. The problematic NameRecord is wDataGruppeSerie. containing an array of 696 string elelements: [NAME] .option flags = 0x0000 .keyboard shortcut = 0x00 .length of the name = 17 .extSheetIx(1-based, 0=Global)= 0 .sheetTabIx = 3 .Menu text length = 0 .Description text length= 0 .Help topic text length = 0 .Status bar text length = 0 .NameIsMultibyte = false .Name (Unicode text) = wDataGruppeSerie. .Formula (nTokens=1): [ArrayPtg] nRows = 696 nCols = 1 {"1.T20.001";"1.T20.001";"1.T20.001";"1.T20.002";"1.T20.002";"1.T20.002";"1.T20.003";"1.T20.003";"1.T20.003";"1.T20.013";"1.T20.013";"1.T20.013";"1.T20.014";"1.T20.014";"1.T20.014";"1.T20.015";"1.T20.015";"1.T20.015";"1.T20.025";"1.T20.025";"1.T20.025";"1.T20.026";"1.T20.026";"1.T20.026";"1.T20.027";"1.T20.027";"1.T20.027";"1.T20.037";"1.T20.037";"1.T20.037";"1.T20.038";"1.T20.038";"1.T20.038";"1.T20.039";"1.T20.039";"1.T20.039";"1.T20.049";"1.T20.049";"1.T20.049";"1.T20.050";"1.T20.050";"1.T20.050";"1.T20.051";"1.T20.051";"1.T20.051";"1.T20.061";"1.T20.061";"1.T20.061";"1.T20.062";"1.T20.062";"1.T20.062";"1.T20.063";"1.T20.063";"1.T20.063";"1.T20.073";"1.T20.073";"1.T20.073";"1.T20.074";"1.T20.074";"1.T20.074";"1.T20.075";"1.T20.075";"1.T20.075";"1.T20.085";"1.T20.085";"1.T20.085";"1.T20.086";"1.T20.086";"1.T20.086";"1.T20.087";"1.T20.087";"1.T20.087";"1.T20.097";"1.T20.097";"1.T20.097";"1.T20.098";"1.T20.098";"1.T20.098";"1.T20.099";"1.T20.099";"1.T20.099";"1.T20.109";"1.T20.109";"1.T20.109";"1.T20.110";"1.T20.110";"1.T20.110";"1.T20.111";"1.T20.111";"1.T20.111";"1.T20.121";"1.T20.121";"1.T20.121";"1.T20.122";"1.T20.122";"1.T20.122";"1.T20.123";"1.T20.123";"1.T20.123";"1.T20.133";"1.T20.133";"1.T20.133";"1.T20.134";"1.T20.134";"1.T20.134";"1.T20.135";"1.T20.135";"1.T20.135";"1.T20.145";"1.T20.145";"1.T20.145";"1.T20.146";"1.T20.146";"1.T20.146";"1.T20.147";"1.T20.147";"1.T20.147";"1.T20.157";"1.T20.157";"1.T20.157";"1.T20.158";"1.T20.158";"1.T20.158";"1.T20.159";"1.T20.159";"1.T20.159";"1.T20.169";"1.T20.169";"1.T20.169";"1.T20.170";"1.T20.170";"1.T20.170";"1.T20.171";"1.T20.171";"1.T20.171";"1.T60.009";"1.T60.009";"1.T60.009";"1.T60.010";"1.T60.010";"1.T60.010";"1.T60.011";"1.T60.011";"1.T60.011";"1.T60.021";"1.T60.021";"1.T60.021";"1.T60.022";"1.T60.022";"1.T60.022";"1.T60.023";"1.T60.023";"1.T60.023";"1.T60.033";"1.T60.033";"1.T60.033";"1.T60.034";"1.T60.034";"1.T60.034";"1.T60.035";"1.T60.035";"1.T60.035";"1.T60.045";"1.T60.045";"1.T60.045";"1.T60.046";"1.T60.046";"1.T60.046";"1.T60.047";"1.T60.047";"1.T60.047";"1.T60.057";"1.T60.057";"1.T60.057";"1.T60.058";"1.T60.058";"1.T60.058";"1.T60.059";"1.T60.059";"1.T60.059";"1.T60.060";"1.T60.060";"1.T60.060";"1.T60.050";"1.T60.050";"1.T60.050";"1.T60.049";"1.T60.049";"1.T60.049";"1.T60.048";"1.T60.048";"1.T60.048";"1.T60.038";"1.T60.038";"1.T60.038";"1.T60.037";"1.T60.037";"1.T60.037";"1.T60.036";"1.T60.036";"1.T60.036";"1.T60.026";"1.T60.026";"1.T60.026";"1.T60.025";"1.T60.025";"1.T60.025";"1.T60.024";"1.T60.024";"1.T60.024";"1.T60.014";"1.T60.014";"1.T60.014";"1.T60.013";"1.T60.013";"1.T60.013";"1.T60.012";"1.T60.012";"1.T60.012";"1.T60.002";"1.T60.002";"1.T60.002";"1.T60.001";"1.T60.001";"1.T60.001";"1.T20.172";"1.T20.172";"1.T20.172";"1.T20.162";"1.T20.162";"1.T20.162";"1.T20.161";"1.T20.161";"1.T20.161";"1.T20.160";"1.T20.160";"1.T20.160";"1.T20.150";"1.T20.150";"1.T20.150";"1.T20.149";"1.T20.149";"1.T20.149";"1.T20.148";"1.T20.148";"1.T20.148";"1.T20.138";"1.T20.138";"1.T20.138";"1.T20.137";"1.T20.137";"1.T20.137";"1.T20.136";"1.T20.136";"1.T20.136";"1.T20.126";"1.T20.126";"1.T20.126";"1.T20.125";"1.T20.125";"1.T20.125";"1.T20.124";"1.T20.124";"1.T20.124";"1.T20.114";"1.T20.114";"1.T20.114";"1.T20.113";"1.T20.113";"1.T20.113";"1.T20.112";"1.T20.112";"1.T20.112";"1.T20.102";"1.T20.102";"1.T20.102";"1.T20.101";"1.T20.101";"1.T20.101";"1.T20.100";"1.T20.100";"1.T20.100";"1.T20.090";"1.T20.090";"1.T20.090";"1.T20.089";"1.T20.089";"1.T20.089";"1.T20.088";"1.T20.088";"1.T20.088";"1.T20.078";"1.T20.078";"1.T20.078";"1.T20.077";"1.T20.077";"1.T20.077";"1.T20.076";"1.T20.076";"1.T20.076";"1.T20.066";"1.T20.066";"1.T20.066";"1.T20.065";"1.T20.065";"1.T20.065";"1.T20.064";"1.T20.064";"1.T20.064";"1.T20.054";"1.T20.054";"1.T20.054";"1.T20.053";"1.T20.053";"1.T20.053";"1.T20.052";"1.T20.052";"1.T20.052";"1.T20.042";"1.T20.042";"1.T20.042";"1.T20.041";"1.T20.041";"1.T20.041";"1.T20.040";"1.T20.040";"1.T20.040";"1.T20.030";"1.T20.030";"1.T20.030";"1.T20.029";"1.T20.029";"1.T20.029";"1.T20.028";"1.T20.028";"1.T20.028";"1.T20.018";"1.T20.018";"1.T20.018";"1.T20.017";"1.T20.017";"1.T20.017";"1.T20.016";"1.T20.016";"1.T20.016";"1.T20.006";"1.T20.006";"1.T20.006";"1.T20.005";"1.T20.005";"1.T20.005";"1.T20.004";"1.T20.004";"1.T20.004";"1.T20.007";"1.T20.007";"1.T20.007";"1.T20.008";"1.T20.008";"1.T20.008";"1.T20.009";"1.T20.009";"1.T20.009";"1.T20.019";"1.T20.019";"1.T20.019";"1.T20.020";"1.T20.020";"1.T20.020";"1.T20.021";"1.T20.021";"1.T20.021";"1.T20.031";"1.T20.031";"1.T20.031";"1.T20.032";"1.T20.032";"1.T20.032";"1.T20.033";"1.T20.033";"1.T20.033";"1.T20.043";"1.T20.043";"1.T20.043";"1.T20.044";"1.T20.044";"1.T20.044";"1.T20.045";"1.T20.045";"1.T20.045";"1.T20.055";"1.T20.055";"1.T20.055";"1.T20.056";"1.T20.056";"1.T20.056";"1.T20.057";"1.T20.057";"1.T20.057";"1.T20.067";"1.T20.067";"1.T20.067";"1.T20.068";"1.T20.068";"1.T20.068";"1.T20.069";"1.T20.069";"1.T20.069";"1.T20.079";"1.T20.079";"1.T20.079";"1.T20.080";"1.T20.080";"1.T20.080";"1.T20.081";"1.T20.081";"1.T20.081";"1.T20.091";"1.T20.091";"1.T20.091";"1.T20.092";"1.T20.092";"1.T20.092";"1.T20.093";"1.T20.093";"1.T20.093";"1.T20.103";"1.T20.103";"1.T20.103";"1.T20.104";"1.T20.104";"1.T20.104";"1.T20.105";"1.T20.105";"1.T20.105";"1.T20.115";"1.T20.115";"1.T20.115";"1.T20.116";"1.T20.116";"1.T20.116";"1.T20.117";"1.T20.117";"1.T20.117";"1.T20.127";"1.T20.127";"1.T20.127";"1.T20.128";"1.T20.128";"1.T20.128";"1.T20.129";"1.T20.129";"1.T20.129";"1.T20.139";"1.T20.139";"1.T20.139";"1.T20.140";"1.T20.140";"1.T20.140";"1.T20.141";"1.T20.141";"1.T20.141";"1.T20.151";"1.T20.151";"1.T20.151";"1.T20.152";"1.T20.152";"1.T20.152";"1.T20.153";"1.T20.153";"1.T20.153";"1.T20.163";"1.T20.163";"1.T20.163";"1.T20.164";"1.T20.164";"1.T20.164";"1.T20.165";"1.T20.165";"1.T20.165";"1.T60.003";"1.T60.003";"1.T60.003";"1.T60.004";"1.T60.004";"1.T60.004";"1.T60.005";"1.T60.005";"1.T60.005";"1.T60.015";"1.T60.015";"1.T60.015";"1.T60.016";"1.T60.016";"1.T60.016";"1.T60.017";"1.T60.017";"1.T60.017";"1.T60.027";"1.T60.027";"1.T60.027";"1.T60.028";"1.T60.028";"1.T60.028";"1.T60.029";"1.T60.029";"1.T60.029";"1.T60.039";"1.T60.039";"1.T60.039";"1.T60.040";"1.T60.040";"1.T60.040";"1.T60.041";"1.T60.041";"1.T60.041";"1.T60.051";"1.T60.051";"1.T60.051";"1.T60.052";"1.T60.052";"1.T60.052";"1.T60.053";"1.T60.053";"1.T60.053";"1.T60.056";"1.T60.056";"1.T60.056";"1.T60.055";"1.T60.055";"1.T60.055";"1.T60.054";"1.T60.054";"1.T60.054";"1.T60.044";"1.T60.044";"1.T60.044";"1.T60.043";"1.T60.043";"1.T60.043";"1.T60.042";"1.T60.042";"1.T60.042";"1.T60.032";"1.T60.032";"1.T60.032";"1.T60.031";"1.T60.031";"1.T60.031";"1.T60.030";"1.T60.030";"1.T60.030";"1.T60.020";"1.T60.020";"1.T60.020";"1.T60.019";"1.T60.019";"1.T60.019";"1.T60.018";"1.T60.018";"1.T60.018";"1.T60.008";"1.T60.008";"1.T60.008";"1.T60.007";"1.T60.007";"1.T60.007";"1.T60.006";"1.T60.006";"1.T60.006";"1.T20.168";"1.T20.168";"1.T20.168";"1.T20.167";"1.T20.167";"1.T20.167";"1.T20.166";"1.T20.166";"1.T20.166";"1.T20.156";"1.T20.156";"1.T20.156";"1.T20.155";"1.T20.155";"1.T20.155";"1.T20.154";"1.T20.154";"1.T20.154";"1.T20.144";"1.T20.144";"1.T20.144";"1.T20.143";"1.T20.143";"1.T20.143";"1.T20.142";"1.T20.142";"1.T20.142";"1.T20.132";"1.T20.132";"1.T20.132";"1.T20.131";"1.T20.131";"1.T20.131";"1.T20.130";"1.T20.130";"1.T20.130";"1.T20.120";"1.T20.120";"1.T20.120";"1.T20.119";"1.T20.119";"1.T20.119";"1.T20.118";"1.T20.118";"1.T20.118";"1.T20.108";"1.T20.108";"1.T20.108";"1.T20.107";"1.T20.107";"1.T20.107";"1.T20.106";"1.T20.106";"1.T20.106";"1.T20.096";"1.T20.096";"1.T20.096";"1.T20.095";"1.T20.095";"1.T20.095";"1.T20.094";"1.T20.094";"1.T20.094";"1.T20.084";"1.T20.084";"1.T20.084";"1.T20.083";"1.T20.083";"1.T20.083";"1.T20.082";"1.T20.082";"1.T20.082";"1.T20.072";"1.T20.072";"1.T20.072";"1.T20.071";"1.T20.071";"1.T20.071";"1.T20.070";"1.T20.070";"1.T20.070";"1.T20.060";"1.T20.060";"1.T20.060";"1.T20.059";"1.T20.059";"1.T20.059";"1.T20.058";"1.T20.058";"1.T20.058";"1.T20.048";"1.T20.048";"1.T20.048";"1.T20.047";"1.T20.047";"1.T20.047";"1.T20.046";"1.T20.046";"1.T20.046";"1.T20.036";"1.T20.036";"1.T20.036";"1.T20.035";"1.T20.035";"1.T20.035";"1.T20.034";"1.T20.034";"1.T20.034";"1.T20.024";"1.T20.024";"1.T20.024";"1.T20.023";"1.T20.023";"1.T20.023";"1.T20.022";"1.T20.022";"1.T20.022";"1.T20.012";"1.T20.012";"1.T20.012";"1.T20.011";"1.T20.011";"1.T20.011";"1.T20.010";"1.T20.010";"1.T20.010"}A .Menu text = .Description text= .Help topic text = .Status bar text = [/NAME] Previously I thought that the problem was caused by an array of numbers. Strings are different, they really can produce continue records while being serialized. I fixed the problem, but did not yet commit it. Can you please apply the attached patch to your local POI trunk and test it against your file set? Yegor
Created attachment 26375 [details] proposed fix (improved)
(In reply to comment #19) > Created an attachment (id=26375) [details] > proposed fix (improved) Sorry for the late reply. I tried to apply your attached patch. Besides some small problems (there seem to be a missing status.xml somewhere in my snapshot), the patch went well and I was able to read the document. Looks good to me Best regards Dirk
Fixed in r1049202 Regards, Yegor
I'm getting exception during reading Excel file org.apache.poi.hssf.record.RecordFormatException: Expected size 18 but got (0) at org.apache.poi.hssf.record.CommonObjectDataSubRecord.<init>(CommonObjectDataSubRecord.java:86) at org.apache.poi.hssf.record.SubRecord.createSubRecord(SubRecord.java:49) at org.apache.poi.hssf.record.ObjRecord.<init>(ObjRecord.java:93) at sun.reflect.GeneratedConstructorAccessor9.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.apache.poi.hssf.record.RecordFactory$ReflectionConstructorRecordCreator.create(RecordFactory.java:84) at org.apache.poi.hssf.record.RecordFactory.createSingleRecord(RecordFactory.java:334) at org.apache.poi.hssf.record.RecordFactoryInputStream.readNextRecord(RecordFactoryInputStream.java:310) at org.apache.poi.hssf.record.RecordFactoryInputStream.nextRecord(RecordFactoryInputStream.java:276) at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:478) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:343) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:400) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:381)
Please report a new bug with a sample file and sample code as the issue discussed here is very old and likely not related as the error message is not the same.