JHOVE Changelog

New in version 1.11

September 30th, 2013
  • GENERAL:
  • I've added lots of logging code. Calls at the FINE level and lower don't show up no matter what I do, so I've put them at the INFO level. The level is set in JhoveBase.java.
  • All .bat and _bat.tmpl files now have CR-LF line endings. That is, they do in the gzip and zip archives you download. I'm not sure how SourceForge will treat files that you download individually, but hopefully it will have the sense to keep CR-LF when downloading to a Windows system.
  • All .bat files now assume JHOVE_HOME is the directory from which they're run. They no longer try to set JAVA_HOME (which was still stuck in Java 1.4 and probably wasn't working for many people), instead assuming that the JAVA command is available on the command line.
  • All javac commands in build.xml files now specify source=1.5 for compatibility with more recent compilers.
  • gdumpwin.bat is deleted. It's redundant with gdump.bat and has bugs of its own.
  • PDF MODULE:
  • Fix to PDF module, submitted by willp-bl, may reduce tendency to run out of heap space on some files.

New in version 1.11 Beta 1 (September 23rd, 2013)

  • I've added lots of logging code. Calls at the FINE level and lower don't show up no matter what I do, so I've put them at the INFO level. The level is set in JhoveBase.java.
  • All javac commands in build.xml files now specify source=1.5 for compatibility with more recent compilers.
  • Fix to PDF module, submitted by willp-bl, may reduce tendency to run out of heap space on some files.

New in version 1.11 Alpha 1 (September 10th, 2013)

  • GENERAL:
  • Added lots of logging code. Calls at the FINE level and lower don't show up no matter what I do, so I've put them at the INFO level.
  • All javac commands in build.xml files now specify source=1.5 for compatibility with more recent compilers.
  • PDF MODULE:
  • Fix to PDF module, submitted by willp-bl, may reduce tendency to run out of heap space on some files.

New in version 1.10 (June 11th, 2013)

  • GENERAL:
  • The amount of logging code has been increased, mostly at the
  • DEBUG level.
  • Further work on generics in Java code.
  • JhoveView now checks for Java 1.5. Was previously allowing 1.4 even
  • though it wouldn't work.
  • HTML MODULE:
  • XHTML files are processed by the HTML module, which invokes the XML
  • modules. In this case, the XML module doesn't have the parameters
  • specified in the JHOVE configuration file and so won't use local
  • copies of schemas. Starting with this version, the parameters of
  • the HTML module are passed to the XML module when invoking it.
  • However, this doesn't work properly (in either module) for a DTD
  • that invokes additional DTDs by relative URLs. Such DTDs should
  • be edited to use only absolute URLs.
  • PDF MODULE:
  • Failure to get a page object number wasn't being handled cleanly,
  • resulting in a report of an invalid document without an error message
  • to explain it (SourceForge bug 49). This has been fixed.
  • The PDF module unnecessarily uses huge amounts of memory to build
  • complex structure trees, when it doesn't need to keep the whole
  • tree in memory to validate it. In the new version, it uses memory
  • more economically. This should result in the successful processing
  • of some PDF files that ran out of memory or took hours to process before.
  • If an annotation isn't a dictionary object, report that explicitly.
  • This happens with some otherwise good files; I can't find any warrant
  • for it in the PDF spec.
  • Some efficiency improvements to PDF parser. Increased buffer size from 4K
  • to 64K. Made Parser.collapseObjectVector more efficient. Parser now
  • returns pseudo-objects for array and dictionary end instead of throwing
  • an exception.
  • Minor cleanup of error reporting.
  • If an object uses a compression scheme which JHOVE can't deal with, JHOVE
  • will try to give a specific error message.

New in version 1.10 Beta 3 (June 6th, 2013)

  • GENERAL:
  • The amount of logging code has been increased, mostly at the DEBUG level.
  • Further work on generics in Java code.
  • JhoveView now checks for Java 1.5. Was previously allowing 1.4 even though it wouldn't work.
  • HTML MODULE:
  • XHTML files are processed by the HTML module, which invokes the XML modules. In this case, the XML module doesn't have the parameters
  • specified in the JHOVE configuration file and so won't use local copies of schemas. Starting with this version, the parameters of
  • the HTML module are passed to the XML module when invoking it.
  • However, this doesn't work properly (in either module) for a DTD that invokes additional DTDs by relative URLs. Such DTDs should
  • be edited to use only absolute URLs.
  • PDF MODULE:
  • Failure to get a page object number wasn't being handled cleanly, resulting in a report of an invalid document without an error message to explain it (SourceForge bug 49). This has been fixed.
  • The PDF module unnecessarily uses huge amounts of memory to build complex structure trees, when it doesn't need to keep the whole
  • tree in memory to validate it. In the new version, it uses memory more economically. This should result in the successful processing
  • of some PDF files that ran out of memory or took hours to process before.
  • If an annotation isn't a dictionary object, report that explicitly. This happens with some otherwise good files; I can't find any warrant
  • for it in the PDF spec.
  • Some efficiency improvements to PDF parser. Increased buffer size from 4K
  • to 64K. Made Parser.collapseObjectVector more efficient. Parser now returns pseudo-objects for array and dictionary end instead of throwing
  • an exception.
  • Minor cleanup of error reporting.
  • If an object uses a compression scheme which JHOVE can't deal with, JHOVE will try to give a specific error message.

New in version 1.10 Beta 2 (May 29th, 2013)

  • GENERAL:
  • The amount of logging code has been increased, mostly at the DEBUG level.
  • Further work on generics in Java code.
  • JhoveView now checks for Java 1.5. Was previously allowing 1.4 even though it wouldn't work.
  • PDF MODULE:
  • Failure to get a page object number wasn't being handled cleanly, resulting in a report of an invalid document without an error message to explain it (SourceForge bug 49). This has been fixed.
  • The PDF module unnecessarily uses huge amounts of memory to build complex structure trees, when it doesn't need to keep the whole tree in memory to validate it. In the new version, it uses memory more economically. This should result in the successful processing of some PDF files that ran out of memory or took hours to process before.
  • If an annotation isn't a dictionary object, report that explicitly. This happens with some otherwise good files; I can't find any warrant for it in the PDF spec.
  • Some efficiency improvements to PDF parser. Increased buffer size from 4K to 64K. Made Parser.collapseObjectVector more efficient. Parser now returns pseudo-objects for array and dictionary end instead of throwing
  • an exception.
  • Minor cleanup of error reporting.

New in version 1.10 Beta 1 (May 23rd, 2013)

  • GENERAL:
  • The amount of logging code has been increased, mostly at the DEBUG level.
  • Further work on generics in Java code.
  • PDF MODULE:
  • Failure to get a page object number wasn't being handled cleanly, resulting in a report of an invalid document without an error message to explain it (SourceForge bug 49). This has been fixed.
  • The PDF module unnecessarily uses huge amounts of memory to build complex structure trees, when it doesn't need to keep the whole tree in memory to validate it. In the new version, it uses memory more economically. This should result in the successful processing of some PDF files that ran out of memory or took hours to process before.
  • If an annotation isn't a dictionary object, report that explicitly. This happens with some otherwise good files; I can't find any warrant for it in the PDF spec.

New in version 1.9 (December 18th, 2012)

  • GENERAL:
  • Jhove.java and JhoveView.java now get their version information from JhoveBase.java. Before it was redundantly kept in three places, and
  • sometimes they didn't all get updated for a new release. Like in 1.8.
  • ConfigWriter was in the package edu.harvard.hul.ois.jhove.viewer, which caused a NoClassDefFoundError if non-GUI configurations didn't include
  • JhoveViewer.jar in the classpath. It's been moved to edu.harvard.hul.ois.jhove.
  • Added script packagejhove.sh and made md5.pl part of the CVS repository to make packaging for delivery easier.
  • jhove.bat now simply uses the Java command rather than requiring the user to set up the Java path.
  • JhoveView.jar and jhove (the top level shell script) are now forced by ant to be executable so there are no mistakes.
  • Warning message given on invalid buffer size string, and minimum buffer size is 1024.
  • Configuration file code for adding handlers and giving init strings to modules was an awful mess that never could have worked.
  • Major repairs done.
  • AIFF MODULE:
  • If an AIFF file was found to be little-endian, the module instance would stay in little-endian mode for all subsequent files. This
  • has been fixed.
  • TIFF MODULE:
  • TIFF files that had strip or tile offsets but no corresponding byte counts were throwing an exception all the way to the top level. Now
  • they're correctly being reported as invalid.
  • XML MODULE:
  • Cleaned up reporting of schemas, Added some small classes to replace the use of string arrays for information structures. Made URI comparison
  • for local schema parameter case-independent. Resolved conflict between "s" and "schema" parameters.
  • WAVE MODULE:
  • Some uncaught exceptions caused the module to throw all the way back to JhoveBase and not report any result for certain defective files. These now report the file as not well-formed.

New in version 1.8 (November 8th, 2012)

  • GENERAL:
  • If JHOVE doesn't find a configuration file, it creates a default one.
  • Generics widely added to clean up the code.
  • build.xml files fixed to force compilation to Java 1.5.
  • Shell script "jhove" no longer makes you figure out where JAVA_HOME is.
  • PDF MODULE:
  • Several errors in checking for PDF-A compliance were corrected. Aside from
  • fixing some outright bugs, the Contents key for non-text Annotations is
  • no longer checked, as its presence is only recommended and not required.
  • Improved code by Hökan Svenson is now used for finding the trailer.
  • TIFF MODULE:
  • TIFF tag 700 (XMP) now accepts field type 7 (UNDEFINED) as well as 1
  • (BYTE), on the basis of Adobe's XMP spec, part 3.
  • If compression scheme 6 is used in a file, an InfoMessage will report
  • that the file uses deprecated compression.
  • WAVE MODULE:
  • The Originator Reference property, found in the Broadcast Wave Extension(BEXT) chunk, is now reported.