poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject [Bug 53302] New: [Patch] EscherAggregate does not handle Continue records
Date Sun, 27 May 2012 20:48:41 GMT
https://issues.apache.org/bugzilla/show_bug.cgi?id=53302

          Priority: P2
            Bug ID: 53302
          Assignee: dev@poi.apache.org
           Summary: [Patch] EscherAggregate does not handle Continue
                    records
          Severity: normal
    Classification: Unclassified
          Reporter: superrubiroyd@gmail.com
          Hardware: PC
            Status: NEW
           Version: unspecified
         Component: HSSF
           Product: POI

Created attachment 28839
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=28839&action=edit
File from existing bugzilla bug to show current implementation defect

When a worksheet contains drawing objects (shapes, pictures, etc.), the drawing
parts in the BIFF format are stored together in a so called drawing aggregate.
The object that handles this logic in HSSF is
org.apache.poi.hssf.record.EscherAggregate. Current implementation assumes that
a drawing aggregate consists of DrawingRecord, ObjRecord and TextObjectRecord
objects. In reality, a drawing aggregate can include one or more Continue
records at arbitrary positions. Current aggregation logic terminates at the
first Continue record and, as result, the aggregated data is not complete. When
parsing such incorrectly aggregated data into Escher tree, user can see
warnings in stdout: "WARNING: N bytes remaining but no space left" and the
parsed tree will not contain all shapes from the worksheet.  


..........
RowRecordsAggregate
DrawingRecord          <-- start of the drawing aggregate
ObjRecord
DrawingRecord
TextObjectRecord
DrawingRecord
ObjRecord
DrawingRecord
TextObjectRecord
DrawingRecord
ObjRecord
DrawingRecord
TextObjectRecord
DrawingRecord
ObjRecord
DrawingRecord
TextObjectRecord
ContinueRecord         <-- current implementation reads up to this point   
ObjRecord
ContinueRecord
TextObjectRecord       <-- end of the drawing aggregate
WindowTwoRecord
..........

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


Mime
View raw message