Skip to content

Escape custom property names in workbook metadata - #641

Open
JimmyLiuJia wants to merge 1 commit into
dhatim:masterfrom
JimmyLiuJia:fix/custom-property-name-escaping
Open

JimmyLiuJia wants to merge 1 commit into
dhatim:masterfrom
JimmyLiuJia:fix/custom-property-name-escaping

Conversation

@JimmyLiuJia

@JimmyLiuJia JimmyLiuJia commented Oct 10, 2026 •

Copy link
Copy Markdown

Custom property names such as R&D are written directly into docProps/custom.xml attributes, producing invalid XML. Apache POI throws POIXMLException when reading the generated workbook's properties.

Escape the names of text, date, number and boolean custom properties with the existing writer helper. Four POI round-trip regressions verify that names containing XML special characters and literal < are preserved, together with each property's typed value.

Validation:

  • On the unmodified master, all four new round-trip tests fail with POIXMLException.
  • mvn -pl fastexcel-writer -Dtest=PropertiesTest test: 4 tests, 0 failures, 0 errors.
  • The fastexcel-writer Surefire reports after the change total 116 tests, 0 failures, 0 errors, 0 skipped.
  • git diff --check passes.
  • A full clean verify was attempted locally but could not complete because Windows denied a Javadoc output-directory write; no full-reactor result is claimed.

AI assistance: OpenAI Codex assisted with the implementation, tests and this description. The validation results were obtained locally.

@JimmyLiuJia

Copy link
Copy Markdown
Author

Validation correction: the local targeted evidence is mvn -pl fastexcel-writer -Dtest=PropertiesTest test (4 tests, 0 failures, 0 errors), and the fastexcel-writer Surefire reports total 116 tests with 0 failures, errors or skips. A full mvn -o -B -ntp clean verify jacoco:report was attempted locally, but Windows denied a Javadoc output-directory write; no full-reactor result is claimed. The PR description is being corrected to reflect this scope. AI assistance disclosure remains accurate.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant