https://bz.apache.org/bugzilla/show_bug.cgi?id=63390

            Bug ID: 63390
           Summary: org.apache.poi.hssf.record.FtCfSubRecord.<init>(FtCfSu
                    bRecord.java:60)
           Product: POI
           Version: 4.0.0-FINAL
          Hardware: Macintosh
                OS: Mac OS X 10.1
            Status: NEW
          Severity: blocker
          Priority: P2
         Component: HSSF
          Assignee: dev@poi.apache.org
          Reporter: priy2...@gmail.com
  Target Milestone: ---

Created attachment 36553
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36553&action=edit
File to reproduce the crash.

Excel and Libreoffice calc is able to open the file, although it doesn't follow
the spec here.[1]

POI should also gracefully handle this. Attaching a couple of repro documents.

Sample Code to Repro :

package poitesting;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class POITest {

        public static void main(String args[]) throws IOException {
                FileInputStream file = new FileInputStream(new
File("/Users/spri/Desktop/temp/INV17040213.xls"));
                // Get the workbook instance for XLS file
                try {
                        HSSFWorkbook workbook = new HSSFWorkbook(file);
                        System.err.println(workbook.getNumberOfSheets());
                        workbook.close();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }
}



[1]https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-xls/fc5bb3ce-8e35-4393-b22f-9cf54062a3a4

Stack Trace :

Exception in thread "main" org.apache.poi.util.RecordFormatException:
Unexpected size (0)
        at
org.apache.poi.hssf.record.FtCfSubRecord.<init>(FtCfSubRecord.java:60)
        at
org.apache.poi.hssf.record.SubRecord.createSubRecord(SubRecord.java:70)
        at org.apache.poi.hssf.record.ObjRecord.<init>(ObjRecord.java:91)
        at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
        at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
        at
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
        at
org.apache.poi.hssf.record.RecordFactory$ReflectionConstructorRecordCreator.create(RecordFactory.java:84)
        at
org.apache.poi.hssf.record.RecordFactory.createSingleRecord(RecordFactory.java:342)
        at
org.apache.poi.hssf.record.RecordFactoryInputStream.readNextRecord(RecordFactoryInputStream.java:301)
        at
org.apache.poi.hssf.record.RecordFactoryInputStream.nextRecord(RecordFactoryInputStream.java:267)
        at
org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:491)
        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)
        at poitesting.POITest.main(POITest.java:21)

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to