Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validator crashes (0.14 CLI PKG-3) #193

Closed
maria-messerschmidt opened this issue Oct 1, 2024 · 0 comments
Closed

Validator crashes (0.14 CLI PKG-3) #193

maria-messerschmidt opened this issue Oct 1, 2024 · 0 comments
Milestone

Comments

@maria-messerschmidt
Copy link

maria-messerschmidt commented Oct 1, 2024

Another scenario where the latest version crashes. In this scenario, I have removed the manifest from the package. I am expecting PKG-3 and POL_2 with profile and just PKG-3 without profile.
AT003.ods

Validation seems ok without profile, but when it gets to with profile, it crashes:
APP-1: [INFO] Validating C:\Users\maria\Desktop\014test\AT003.ods.
APP-4: [INFO] Validation report for C:\Users\maria\Desktop\014test\AT003.ods.
DOC-2: [INFO] package OpenDocument version 1.3 detected.
DOC-3: [INFO] mimetype OpenDocument MIMETYPE application/vnd.oasis.opendocument.spreadsheet detected
PKG-3: [ERROR] META-INF\manifest.xml An OpenDocument Package SHALL contain a file "META-INF/manifest.xml".
NOT VALID, 1 errors, 0 warnings and 2 info messages.

java.lang.NullPointerException: Cannot invoke "org.openpreservation.odf.pkg.Manifest.getEntriesByMediaType(String)" because "this.manifest" is null
at org.openpreservation.odf.pkg.OdfPackageImpl.getXmlEntries(OdfPackageImpl.java:221)
at org.openpreservation.odf.validation.rules.SchematronRule.check(SchematronRule.java:48)
at org.openpreservation.odf.validation.rules.ProfileImpl.getRulesetMessages(ProfileImpl.java:62)
at org.openpreservation.odf.validation.rules.ProfileImpl.check(ProfileImpl.java:52)
at org.openpreservation.odf.apps.CliValidator.profileReport(CliValidator.java:87)
at org.openpreservation.odf.apps.CliValidator.call(CliValidator.java:58)
at org.openpreservation.odf.apps.CliValidator.call(CliValidator.java:34)
at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
at picocli.CommandLine.execute(CommandLine.java:2170)
at org.openpreservation.odf.apps.CliValidator.main(CliValidator.java:98)

Another file is AT0028.ods
AT028.ods
This should report several areas, but also PKG-3. It crashes in the same way, so I am assuming it is PKG-3 causing the issue for this one as well.

APP-1: [INFO] Validating C:\Users\maria\Desktop\014test\AT028.ods.
APP-4: [INFO] Validation report for C:\Users\maria\Desktop\014test\AT028.ods.
PKG-5: [ERROR] META-INF\schema An OpenDocument Package SHALL only contain the "META-INF/manifest.xml" and files containg the term "signatures" in their name in the "META-INF" folder. File META-INF/schema does not meet this criteria.
XML-4: [ERROR] META-INF\schema Not a valid XML document. Validation exception at line 32 and column 55: attribute "style:hopla" not allowed here; expected attribute "style:font-adornments", "style:font-charset", "style:font-family-generic", "style:font-pitch", "style:name", "svg:accent-height", "svg:alphabetic", "svg:ascent", "svg:bbox", "svg:cap-height", "svg:descent", "svg:font-family", "svg:font-size", "svg:font-stretch", "svg:font-style", "svg:font-variant", "svg:font-weight", "svg:hanging", "svg:ideographic", "svg:mathematical", "svg:overline-position", "svg:overline-thickness", "svg:panose-1", "svg:slope", "svg:stemh", "svg:stemv", "svg:strikethrough-position", "svg:strikethrough-thickness", "svg:underline-position", "svg:underline-thickness", "svg:unicode-range", "svg:units-per-em", "svg:v-alphabetic", "svg:v-hanging", "svg:v-ideographic", "svg:v-mathematical", "svg:widths" or "svg:x-height".
XML-4: [ERROR] META-INF\schema Not a valid XML document. Validation exception at line 32 and column 55: element "style:font-face" missing required attribute "style:name".
DOC-2: [INFO] package OpenDocument version 1.3 detected.
PKG-5: [ERROR] META-INF\ny.xml An OpenDocument Package SHALL only contain the "META-INF/manifest.xml" and files containg the term "signatures" in their name in the "META-INF" folder. File META-INF/ny.xml does not meet this criteria.
PKG-5: [ERROR] META-INF\parse An OpenDocument Package SHALL only contain the "META-INF/manifest.xml" and files containg the term "signatures" in their name in the "META-INF" folder. File META-INF/parse does not meet this criteria.
XML-3: [ERROR] META-INF\parse Not a well formed XML document. XML parsing exception at line 1 and column 1: Content is not allowed in prolog..
MIM-1: [ERROR] mimetype The "mimetype" file SHALL be the first file of the zip file.
MIM-2: [ERROR] mimetype The "mimetype" file SHALL NOT be compressed.
MIM-3: [ERROR] mimetype The "mimetype" file SHALL NOT use an 'extra field' in its header.
DOC-3: [INFO] mimetype OpenDocument MIMETYPE application/vnd.oasis.opendocument.spreadsheet detected
PKG-3: [ERROR] META-INF\manifest.xml An OpenDocument Package SHALL contain a file "META-INF/manifest.xml".
PKG-7: [WARNING] Thumbnails\thumbnail.png An OpenDocument Package SHOULD contain a preview image Thumbnails/thumbnail.png.
PKG-2: [ERROR] styles.xml All files contained in the Zip file shall be non compressed (STORED) or compressed using the "deflate" (DEFLATED) algorithm. Zip entry styles.xml is compressed with an unknown algorithm.
NOT VALID, 11 errors, 1 warnings and 2 info messages.

java.lang.NullPointerException: Cannot invoke "org.openpreservation.odf.pkg.Manifest.getEntriesByMediaType(String)" because "this.manifest" is null
at org.openpreservation.odf.pkg.OdfPackageImpl.getXmlEntries(OdfPackageImpl.java:221)
at org.openpreservation.odf.validation.rules.SchematronRule.check(SchematronRule.java:48)
at org.openpreservation.odf.validation.rules.ProfileImpl.getRulesetMessages(ProfileImpl.java:62)
at org.openpreservation.odf.validation.rules.ProfileImpl.check(ProfileImpl.java:52)
at org.openpreservation.odf.apps.CliValidator.profileReport(CliValidator.java:87)
at org.openpreservation.odf.apps.CliValidator.call(CliValidator.java:58)
at org.openpreservation.odf.apps.CliValidator.call(CliValidator.java:34)
at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
at picocli.CommandLine.execute(CommandLine.java:2170)
at org.openpreservation.odf.apps.CliValidator.main(CliValidator.java:98)

@maria-messerschmidt maria-messerschmidt changed the title Validator crashes (0.14 CLI) Validator crashes (0.14 CLI PKG-3) Oct 1, 2024
@carlwilson carlwilson added this to the v0.15 milestone Oct 16, 2024
carlwilson added a commit that referenced this issue Oct 29, 2024
- added check for null manifest when attempting to list package XML files.

Closes #193
carlwilson added a commit that referenced this issue Oct 29, 2024
- added check for null manifest when attempting to list package XML files.

Closes #193
carlwilson added a commit that referenced this issue Nov 19, 2024
* REL: v0.16.0 (#210)

* DEV: v0.15.0 dev version. (#202)

* FIX: Double validation reporting (#201)

- removed the validation report output from profile reporting.

* FIX: Policy crash when document unparsable (#203)

* Dev/0.15 (#204)

* DEV: v0.15.0 dev version.

* DEV: v0.15.0 dev version.

* FIX: Policy crash when package has no manifest (#205)

- added check for null manifest when attempting to list package XML files.

Closes #193

* FIX: Crashing policy macro check of unreadable entries. (#206)

- null stream entries are no longer checked for macros.

* FIX: Version detection issues (#207)

* FIX: Version detection issues

- using full manifest entry name rather than simply file name; and
- use appropriate namespace for detection.

* FIX: Version detection fall-through.

* FIX: Handling of encrypted entries (#208)

- `PackageParser` changes:
  - parsing of `mimetype` and `META-INF/manifest.xml` are now done up front;
  - simpleified entry handling;
  - dedicated methods for mimetype and manifest parsing;
  - cleaned up handling of bad zip entries prior to moving this to the zip classes;
- `OdfPackage` now has an `isEncrypted()` method to check if the package contains encrypted entries;
- simplifed message processing in `ValidatingParser`;
- addded encryption detection to prevent validation and profiling of encrypted package entries;
- CLI reports incomplete validation for packages with encrypted entries, though this is still a little hacky.

* REL: v0.16.0 (#209)

- bumped maven version -> 0.16.0;
- updated version in batch start files; and
- updated version in README and other documentation.

* FIX: Encryption checking of bad documents (#213)

- fixed bug where checking encryption of unparseable packages caused an NPE;
- bumped version to 0.16.1 for the fix;
- updated documentation and batch files for new version number.

* DEV: Version 0.16.2-SNAPSHOT (#216)

- bumped `pom.xml` versions to `0.16.2-SNAPSHOT`; and
- updated version in documents and batch files.

* FIX: Don't parse check missing entries (#217)

- check that an XML document in the manifest exists before grabbing the parse entry.

* PARK: Policy checking single files

- fixed a few rules so that single files don't crash; BUT
- a better approach would be to simply offer a single document based check method.

* FIX: Unimplemented profile checks

- for unimplemented profile checks against a single file, return an empty message log;
- added protection against missing package at the start of the profile check;
- added some null checks to profile checking methods; and
- removed some unused imports and parameters.

TODO: Implement schematron checks for a single file.
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

No branches or pull requests

2 participants