The GitHub Actions job "Java CI with Ant" on poi.git/trunk has failed.
Run started by GitHub user pjfanning (triggered by pjfanning).

Head commit for run:
03681ab76e4e5d7507479899bb9a8a81c2c5e25f / PJ Fanning 
<[email protected]>
Avoid building XmlBeans objects for every shared string (#1244)

Reading and writing string cells created an XmlBeans document store per
cell on both paths.

SharedStringsTable.addEntry serialised the CTRst to an XML fragment with
xmlText() purely to use it as a map key, for every string cell written
including duplicates, and readFrom did the same for every entry on open.
Entries that hold nothing but text (no formatting runs, no phonetic
data) are now keyed by that text in a separate map, so the raw text can
never collide with the XML fragment of a rich string. Text with leading
or trailing whitespace still uses the XML key, because for those the
xml:space attribute is significant but is not part of the text.

The event model round-tripped every string through XmlBeans and back:
ReadOnlySharedStringsTable stores plain Strings but getItemAt wrapped
each one in an XSSFRichTextString, and XSSFSheetXMLHandler immediately
called toString() on it. The inline-string branch did the same to a
string it already had. That round trip is not the identity - it applies
utfDecode - so the handler now applies exactly that decoding, keeping
the XSSFRichTextString path for the rare strings containing "_x".
getItemAt keeps its signature and behaviour; the raw accessor added
next to it is package private, so no public API changes.

Co-authored-by: Claude Fable 5 <[email protected]>

Report URL: https://github.com/apache/poi/actions/runs/33796925071

With regards,
GitHub Actions via GitBox


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

Reply via email to