Summary: | [PATCH] "Pull" method for handeling continue records | ||
---|---|---|---|
Product: | POI | Reporter: | Jason Height <jheight> |
Component: | HSSF | Assignee: | POI Developers List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | ||
Priority: | P3 | ||
Version: | 2.5-FINAL | ||
Target Milestone: | --- | ||
Hardware: | Other | ||
OS: | other | ||
Attachments: |
Record InputStream patch
The new RecordInputStream class TestcaseRecordInputStream.java RecordInputStream patch The new RecordInputStream class A new RefErrorPtg class |
Description
Jason Height
2004-10-26 22:30:26 UTC
Created attachment 13227 [details]
Record InputStream patch
Created attachment 13228 [details]
The new RecordInputStream class
I'll have a closer look at this. The big issue I have with continue records (not with this) is that they're not really continuous. One possible, flawed, solution to this is to mark records that accept continue records and feed the later continue records to those records. The trouble is if there are unknown records that can accept continue records then this solution will not work. If you've got any idea's how to handle this I'd love to know. Jason, I thought you were a committer? I'm assuming he wanted feedback for a large patch. Yes that is correct I wanted some feedback. This is a major change to how records are created. Personally i think that it is MUCH MUCH simpler (especially for SST), and has the possibilty to be quicker if the underlying POIFS InputStream was also was able to read byte by byte rather than loading the whole data stream into memory. I am pretty sure that i solved all of the issues and that the unit tests all passed. The reason that i didnt commit was due to the major changes in how this created records, and i never got arround to creating the RecordOutputStream. I will work further on the patch, but only if people are happy with the concepts. The more i look at this, the more i like this! Jason, The TestRecordinputstream.java file seems to be missing. Could you pls add it in. Thanks. Created attachment 15726 [details]
TestcaseRecordInputStream.java
Comment on attachment 15726 [details]
TestcaseRecordInputStream.java
Additional file missing from original patch.
Avik, Should be all here now. I just tried to compile my local repos, but i must have done an update some time ago, because i get alot of compile errors due to cvs not being able to merge updates with my patch. Have you already attempted to merge this patch with the current CVS version? If so ill hold off, now that you should have all of the files required to build and test. Jason Created attachment 15773 [details]
RecordInputStream patch
New patch updated to the latest code base as of today.
Should apply relatively easily. All test cases pass.
I do not currently implement the escher graphics correctly, particularily the
case where there is an Obj record between two drawing group records, where the
second drawing group record is a continuation of the first. *Why is there no
test case for this anomoly??*
If can get some sort of affirmative 'hey, this looks like it shoud be
committed' then i will find a work around for the escher stuff and commit the
changes.
Jason
Created attachment 15774 [details]
The new RecordInputStream class
Created attachment 15775 [details]
A new RefErrorPtg class
Patch applied to HEAD |