tballison commented on PR #3277:
URL: https://github.com/apache/tika/pull/3277#issuecomment-5963874799
Let me know what you think of this from my :robot:
```
Findings
1. Page-node GUIDs end up in entityGuids. I logged which object type
supplied each GUID in the classic walker. Every entityGuids value on the
fixtures came from JCID 0x0B. The PR defines that type as
OneNoteJcid.PAGE_NODE but neither switch handles it, so it falls
through to the default case (OneNoteTreeWalker.addClassicEntityGuid,
MSOneStorePackage.recordEntityGuid). As a result, entityGuids in
practice is undocumented page-node IDs. testOneNote1 and testOneNote2
return the same two values. Either map page nodes to their own key or drop the
catch-all key.
2. The PR doesn't show that these are the IDs OneNote itself uses. The
section-node (0x07) GUIDs are dropped and the file header's GUID is used as the
section GUID instead. The page GUID comes from the
page-metadata object (0x30), not the page node (0x0B), and the two
differ in every fixture. The tests only check the GUID format, not the values.
Since these keys freeze once released, ask the author
to match them against OneNote's "Copy Link to Page" section-id/page-id
for one fixture, then pin those exact values in tests on
testOneNoteFromOffice365.one (newer format) and testOneNote2.one
(classic).
3. Classic and newer formats may disagree on old page versions.
test-tika-3970-dupetext.one (a version-history file) yields 2 page GUIDs but
only 1 page-series GUID. The classic walker records GUIDs from
every revision, while the newer-format path skips old page versions (it
has a test for that). Check whether the classic path is picking up
version-history pages.
4. The output change isn't in CHANGES. Newer-format files now get <div
class="page" id="{GUID}">; classic files still have no page divs. Add a CHANGES
line, or keep the change to metadata only.
Maintainer decisions
- SECTION_GUIDS is a bag, but a .one file is one section. A single
onenote:sectionGuid may be the better key to freeze.
- OneNoteJcid and GUID.fromMicrosoftBytes become new public API.
Hygiene
- The 100,000-value cap and the type-to-key switch are written twice: once
in OneNoteGuidCollector, once inline in MSOneStorePackage with its own
MAX_GUID_COUNT. Share one collector.
- The newer-format bags are in insertion order while the classic ones are
sorted (the existing author keys are sorted in both).
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]