Skip to content

TIKA-5057: deep dive rewrite of the Onenote parser - #3564

Merged
tballison merged 59 commits into
apache:mainfrom
tballison:TIKA-5057
Nov 13, 2026
Merged

tballison merged 59 commits into
apache:mainfrom
tballison:TIKA-5057

Conversation

@tballison

Copy link
Copy Markdown
Contributor

…eNote parser

And other OneNote improvements

@tballison

Copy link
Copy Markdown
Contributor Author

After the second commit:

Measured on testOneNote2007OrEarlier.one (1.25 MB, 1.1 MB of images), JDK 25, G1. The load test is 8 threads × 50 parses at -Xmx96m.

Build Alloc/parse Min -Xmx (1 parse) GC pauses Full GCs Wall
Before #3018 (images not extracted) 4.3 MB 13 MB 64 0 2.9 s
Head 25.2 MB 23 MB 1312 340 12.8 s
This PR 7.3 MB 17 MB 203 10 2.1 s

tballison and others added 6 commits November 6, 2026 21:14
…neNote parser

  Nothing reachable from OneNoteParser uses the
  serialize path, the FSSHTTPD chunking/builder side, the node-object
  classes, or the unsigned/ helpers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tballison tballison changed the title TIKA-5057: remove dead write-side and FSSHTTPD build code from the … TIKA-5057: deep dive rewrite of the Onenote parser Nov 7, 2026
tballison and others added 14 commits November 7, 2026 17:28
…-text labels; note why extended ASCII stays windows-1252
…sections...

OneNote 2007 picture and ink objects as raw data; keep hyperlink paragraph text, linking the hyperlink runs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
keep edited OneNote objects; inherit empty global ID tables; read multi-fragment transaction logs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ip deleted FSSHTTPB version contexts quietly
…t; includePageHistory gives their older page versions

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tballison
tballison marked this pull request as ready for review November 9, 2026 19:34
tballison and others added 6 commits November 10, 2026 13:53
…hing them...

which fixes encrypted-section detection; stop shared printout source files from inheriting a page image's name

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dePageHistory is set

walk the current revision's metadata roots instead of a second walk over every revision

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@THausherr

Copy link
Copy Markdown
Contributor

I've ran out of budget 😮😂

…TTPB manifests once, extract each stored file once and cap embedded bytes at the file size
@tballison

Copy link
Copy Markdown
Contributor Author

Oh, no. Sorry and thank you @THausherr !

@henry-lindeman-glean

Copy link
Copy Markdown
Contributor

Had the 🤖 take a look, lmk what you think. Used carbon for the review (I assume claude will be lenient toward itself) but its english is a little harder to read imo.

REVIEW.md

@tballison

Copy link
Copy Markdown
Contributor Author

Thank you @henry-lindeman-glean . Bot is churning. Self-reviews this morning fixed just short of half of those already, but, y, there's a lot more to do. Go 🤖 , go!

tballison and others added 6 commits November 11, 2026 16:26
… cache; review fixes

  - skip the no-content dump when the walk withheld history, deleted pages or
    declined attachments (empty .onetoc2 walks still fall back)
  - keep saved-version page GUIDs with includePageHistory
  - validate chunk references; bound lazy property-set reads by their chunk;
    read the FileDataStoreObject footer at its offset; reject negative positions
  - 4-page aligned read cache (testOneNote2.one: 205x -> 4x file size read)
  - drop the duplicate InlineInkWords constant, the BitReader GUID cache and the
    unused MSOneStorePackage options parameter; comment fixes
  - onetoc2 in supported formats; BREAKING CHANGES entry

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tballison
tballison merged commit eedcbd1 into apache:main Nov 13, 2026
4 checks passed
@tballison
tballison deleted the TIKA-5057 branch November 13, 2026 00:35
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.

4 participants