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]
