https://issues.apache.org/bugzilla/show_bug.cgi?id=47624

--- Comment #3 from nothize <[email protected]> 2010-03-18 08:44:26 UTC ---
A simple workaround as a PoC is as below.

Where Invoker is a reflection util to read the private property by force.

-----------------------
        if ( null == drawing ) {
            drawing = sh.createDrawingPatriarch();
            // Remove redundant records to avoid error.

            Sheet _sh = (Sheet)Invoker.getProperty(sh, "_sheet");
            List list = _sh.getRecords();
            for ( Iterator it = list.iterator(); it.hasNext(); ) {
                RecordBase e = (RecordBase)it.next();
                if ( e instanceof TextObjectRecord || e instanceof
DrawingRecord || e instanceof ObjRecord ) {
                    it.remove();
                }
            }
        }
-----------------------

The idea is that the Sheet.aggregateDrawingRecords(..) called by
HSSFSheet.createDrawingPatriarch() fails to remove and also destroyed the
pairing of DrawingRecord and *ObjRecord that causing the Excel open file error
prompt.

The patch to Sheet.java will follow.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to