Release Notes 4.3

Release 4.3.1.21 (2013-02-26)

  • Improved internal groovy pipeline builder support.
    See JS-840 -BG-

Release 4.3.1.20 (2013-02-01)

  • Update to jadice® document platform 4.3.0.25
    See also Release Notes for jadice® document platform
  • Fixed memory leak that was caused by registering temporary files in the JVM's shutdown hook via File.deleteOnExit()
    See JS-839 -BG-
  • Improved HTML rendering using CSS properties "position: absolute"
    See JS-803 -FI-
  • HTML rendering in MailBodyCreatorNode rarely failed due to an IllegalArgumentException caused by java.awt.font.LineBreakMeasurer when rendering an image placeholder.
    See JS-813 -BG-
  • Improved fault tolerance for plain text mail rendering: Filtering out invalid ASCII control characters from message body and message header.
    See JS-810 / JS-818 -BG-
  • Disabled Producer Flow Control for ActiveMQ.
    If you use a customized version of the default configuration file activemq-broker.xml, please review the changes made herein.
    See JS-819
  • Force JavaMail not to ignore the Content-Transfer-Encoding header in parts of type message/* by applying the javax.mail property mail.mime.allowencodedmessages for compliance with RFC 6533, sec 4.5.
    See JS-821 and JavaMail documentation -BG-
  • Fixed client side NPE that rarely occurred when a job is aborted at the same moment when it finishes
    See JS-836 -BG-
  • Implemented rendering of HTML form elements.
    See JS-797 -BG-
  • Improved GhostscriptNode:
    • Using AdditionalOptions in GhostscriptNode.
      See JS-824 -FI-
    • New LaserJet4OutputDevice that produces PCL.
  • API enhancement: Introduced new method StreamDescriptor.lookupFileName(int) having a maximum recursion level. -BG-
  • Update of misc. third party libraries:
    • Apache POI: 3.8 ⇒ 3.9

Release 4.3.1.19 (2012-11-30)

  • Update to jadice® document platform 4.3.0.23
    See also Release Notes for jadice® document platform
  • Support for PDF/A-2 conversion with ghostscript 9.06 or above: Introduced new enumeration field com.levigo.jadice.server.ghostscript.PDFOutputDevice.Version.PDFA_2.
    See JS-800 -BG-
  • Improved email conversion: Support for attachments with MIME type text/rfc822-headers.
    If you use a customized version of the default scripts EMailConversion.groovy or EmailConversionViaMSOffice.groovy, please review the changes made herein.
    See JS-806 and RFC 1892 -BG-
  • MSPowerpointNode: Use AutomationSecurity property to disable autoMacros in MS PowerPoint files. -FI-
  • Fixed UnGZIPNode: The underlying InputStream is occasionally closed several times which caused an IOException.
    See JS-809 -BG-
  • Improved StreamAnalysisNode: password protected ZIP archive files are now recognized as MIME type application/zip;protection=encrypted (introduced new parameter).
    If you are using a modified version of server-config/filetype-databases/default.xml please review the changes herein.
    Furthermore the script files in server-config/email-conversion have been modified so that 'normal' ZIPs and password protected ZIPs are handled differently.
    If you are using modified versions of these script files please review the changes herein. See JS-812 -BG-
  • Update of misc. third party libraries:
    • JTNEF: 1.7.0 ⇒ 1.8.0

Release 4.3.1.18 (2012-09-28)

  • MSWordNode: Use AutomationSecurity property to disable autoMacros in MS Word templates.
    See JS-795 -FI-

Release 4.3.1.17 (2012-08-30)

  • Update to jadice® document platform 4.3.0.21
    See also Release Notes for jadice® document platform
  • MSOutlookNode failed to handle other input than MailItems.
    See JS-785 -BG-
  • MSOutlookNode now applies a StreamResolver in order to handle images and other objects which are embedded in an HTML body. As consequence images and other objects which are available on this way are no longer treated as separate attachments.
    See JS-788 -BG-
  • MSOutlookNode threw an error when attempting to export attachments with 1-character file name.
    See JS-792 -BG-
  • MSWordNode, MSPowerpointNode and MSVisioNode: Support for special MIME types to distinguish between PDF 1.5 and PDF/A-1 export. Further details are available in the configuration file server-config/ms-office/export-configuration.xml.
    See JS-614 -BG-
  • MSPowerpointNode: Introduced own pool management for MS PowerPoint instances as it has shown that it does not support parallel instances.
    If you are using a modified version of server-config/application/instance-base.xml please review the newly introduced bean ms-powerpoint-instance-pool.
    See JS-793 -FI-
  • Re-enabled long version of the invalid license message text in the server log.
    See JS-790 and DOCP-2300 -BG-
  • API improvement: New method com.levigo.jadice.server.nodes.StreamInputNode.addStream(Stream)

Release 4.3.1.16 (2012-07-27)

  • Update to jadice® document platform 4.3.0.20
    See also Release Notes for jadice® document platform
  • Fixed handling of file names in RAR archives: Regard NULL-terminated strings and decode unicode file names.
    See JS-784 -BG-
  • Improved JadiceDocumentInfoNode: Early closing of a Stream occasionally caused job failure due to concurrency issue.
    See JS-772 -FI-
  • Improved MSExcelNode: Converting an MS Excel file containing an user dialog caused a timeout.
    See JS-783 -FI-
  • New com.levigo.jadice.server.pdfmerge.PDFDecryptNode in order to remove password protection from a PDF document.
    Due to copyright laws this operation requires the PDF owner password; otherwise the decryption fails.

Release 4.3.1.15 (2012-06-26)

Release 4.3.1.14 (2012-05-24)

  • Update to jadice® document platform 4.3.0.18
    See also Release Notes for jadice® document platform
  • Improved DynamicPipe: Reading from a closed Stream caused job failure due to concurrency issue.
    See JS-772 -FI-
  • StreamAnalysisNode recognizes spanned / splitted ZIP files now with MIME Type application/zip-spanned.
    See JS-776 -BG-
    See also ZIP File Format Specification, Section K
  • Clarified JMS example for IBM WebSphere MQ
  • Ensured compability with LibreOffice 3.4.6 (but not LibreOffice 3.5!)
    • Update of misc. third party libraries:
      • OpenOffice bindings: 3.0.1 ⇒ 3.2.1
      • javax.mail: 1.4.4 ⇒ 1.4.5

Release 4.3.1.13 (2012-04-20)

  • Update to jadice® document platform 4.3.0.17
    See also Release Notes for jadice® document platform
  • EmailPreviewConversion.groovy did not list attached mails in TOC.
    See JS-763 -BG-
  • Email conversion: Support for embedded images referenced only by Content-Location header field.
    See JS-762 -BG-
  • No start of Ghostscript if there are no streams to convert (concerns OutputMode.JOINED).
    See JS-764 -BG-
  • Reworked OfficeOpenXMLMatcher so that PowerPoint Presentations with embedded Excel Spreadsheets are recognized correctly.
    See JS-757 -BG-
  • HTML conversion: check if font has enough characters for rendering can be disabled via system property org.cobra.html.unchecked_fonts.
    Usage: Provide comma separated font names as property value.
    See JS-765 -BG-
  • Update of misc. third party libraries:
    • Apache POI: 3.7 ⇒ 3.8
    • TrueZIP: 6.8.3 ⇒ 6.8.4

Release 4.3.1.12 (2012-03-12)

  • Update to jadice® document platform 4.3.0.16
    See also Release Notes for jadice® document platform
  • Improved subpipeline announcement. If a (node) class is missing on client side subsequent announcements have failed due to the same ClassNotFoundException.
    Please upgrade your client side libraries for correct behaviour. Otherwise the nodes announced will not be associated with their jobs.
    See JS-754 -BG-
  • Improved stream handling: Classes BundledStream and URLStream don't accept null arguments in their constructors anymore. Better debugability of StreamReceiver.
    See JS-755 -BG-
  • Changed ruleset "default.xml" for DynamicPipelineNode: Streams with MIME type text/plain are not rendered anymore as if they were mails.
    Note: Please review your customized versions of your rulesets and follow the changes made.
    See JS-758 -BG-
  • Fixed several issues in EmailPreviewConversion.groovy: No forward of container streams that are unpacked, fixed wrong OLE handling of office format streams.
    See JS-759 and JS-760 -BG-

Release 4.3.1.11 (2012-02-13)

  • Update to jadice® document platform 4.3.0.15
    See also Release Notes for jadice® document platform
  • Improved Ghostscript handling in output mode com.levigo.jadice.server.ghostscript.GhostscriptNode.OutputMode.PAGE: So far all incoming documents were processed by one single ghostscript call. Now an own instance of ghostscript will be started for each incoming document so that it is possible to detect single corrupted streams (e.g. via Message-ID JS.GHOSTSCRIPT-NO_OUTPUT).
    See JS-743 -BG-
  • Update of misc. third party libraries:
    • SubEtha SMTP: 3.1.5 ⇒ 3.1.6

Release 4.3.1.10 (2011-12-02)

  • Log messages addressed to instances of JobListener on the client side also appear in server log.
    See JS-718 -BG-
  • Altered default logging configuration so that logging to console and file is buffered asynchronously in order to avoid locking issues.
    If you use a customized version of the default configuration server-config/logging/log4j-appenders.xml or log4j-appenders-mvn.xml, please review the changes therein.
    See JS-726 -BG-
  • JadiceServerInfoNode lists the print services available on server side.
    See JS-730 -BG-
  • Improved handling in MSOutlookWorker: StreamDescriptors of the body part streams now have the appropriate MIME type (so far: StreamDescriptor#UNKNOWN_MIME_TYPE) so that no succeeding stream analysis is required anymore.
    See JS-720 -BG-
  • Improved HTML rendering:
    • Determination of the charset now considers the BOM of a html document, too.
      See JS-721 -BG-
    • Fonts with corrupted font metrics (line height is zero) are be substituted by fallback font.
      See JS-680 and JS-722 -BG-
    • Repeating background images are embedded as tiling pattern instead of single images. Fully transparent background images are dropped completely.
      See JS-663 -BG-
    • Fixed NullPointerException when <fontbase> element has no attribute size.
      See JS-729 -BG-
  • Update of misc. third party libraries:
    • Apache Commons IO: 2.0.1 ⇒ 2.1

Release 4.3.1.9 (2011-10-28)

  • Update to jadice® document platform 4.3.0.13
    See also Release Notes for jadice® document platform
  • Improved pagination handling in email conversion: When an attached PDF file is corrupted / cannot be accessed the pagination process for the "List of Attachments" does not abort immediately. Instead a new warning is emmited (Message-ID JS.SERVER-ATTACHMENT_DIRECTORY_PAGINATION_INCOMPLETE) and the "List of Attachments" will have no pagination.
    If you use a customized version of the default EMailConversion.groovy script, please review the changes of the method call AttachmentDirectoryFactory#createAttachmentDirectory.
    See JS-696 -BG-
  • New feature: MSWordNode can export docx.
    See JS-701 -BG-
  • Improved handling of illegal mail addresses by applying the javax.mail property mail.mime.address.strict.
    See JS-715 and JavaMail documentation -BG-
  • Fixed conversion of BMP images that are processed by the DynamicPipelineNode.
    See JS-712 -BG-

Release 4.3.1.8 (2011-09-16)

  • Update to jadice® document platform 4.3.0.12
    See also Release Notes for jadice® document platform
  • Fixed handling of filenames with non-ASCII characters in MS Office conversion.
    See JS-674 -BG-
  • Fixed handling of filenames with hash signs in OpenOffice conversion.
    See JS-700 -BG-
  • Email conversion:
    • Improved tolerance towards (actually corrupted) emails with empty or missing body part within a MimeMultipart (Content-Type: multipart/*). When locating such an case, a new warning will be emitted: MessageID JS.SERVER-EMPTY_MULTIPART.
      See JS-683 and JavaMail documentation -BG-
    • Improved selection strategy when a multipart/* block is included in a multipart/alternative block.
      See JS-318 and JS-684 -BG-
    • Improved groovy scripts for email conversion: Better stream handling of the mail body stream if an unused body part was found.
      Note: Please review your customized versions of your email conversion scripts and follow the changes made.
      See JS-547 -BG-

Release 4.3.1.7 (2011-08-15)

  • Update to jadice® document platform 4.3.0.11
    See also Release Notes for jadice® document platform
  • Fixed failing conversion via MS Word when converting document via virtual printer.
    See JS-655 -BG-
  • Fixed export of PDFs that contain bilevel images defining an ImageMask.
    See JS-665
  • Email conversion: Improved tolerance against illegal Date header fields that caused a NPE in SimpleDateFormat.
    See JS-667 -BG-
  • Update of misc. third party libraries:
    • Apache Xalan-Java: 2.6.0 ⇒ 2.7.1 due to a memory leak when creating multiple XML transformer instances.
      See JS-668 -BG-

Release 4.3.1.6 (2011-07-06)

  • Update to jadice® document platform 4.3.0.10
    See also Release Notes for jadice® document platform
  • Update of misc. third party libraries:
    • JAXB-Impl: 2.1.6 ⇒ 2.1.13
    • Apache commons-codec: 1.4 ⇒ 1.5
    • Apache commons-io: 2.0 ⇒ 2.0.1
    • Apache commons-logging: 1.1 ⇒ 1.1.1
    • Apache commons-pool: 1.5.1 ⇒ 1.5.6
    • TrueZIP: 6.8.1 ⇒ 6.8.3
    • javax.mail: 1.4.1 ⇒ 1.4.4
    • log4j: 1.2.14 ⇒ 1.2.16
    • org.subethamail:subethasmtp 3.1.4 ⇒ 3.1.5
  • com.levigo.jadice.server.javamail.MessageRFC822Node and com.levigo.jadice.server.javamail.TNEFNode have new property ignoreOriginalMimeTypes which improves the handling of e-mails with binary body content but misleading Content-Type declaration.
    See JS-639 -BG-
  • StreamAnalysisNode can recognize MS Project files now.
    See JS-618 -BG-
  • Fixed failing conversion via MS Word when converting document with WdOpenFormat.WD_OPEN_FORMAT_ENCODED_TEXT, WD_OPEN_FORMAT_TEXT or WD_OPEN_FORMAT_UNICODE_TEXT.
    See JS-641 - BG-
  • Introduced new Message IDs:
    See JS-636 -BG-
    • JS.MSOFFICE-WRONG_OPERATING_SYSTEM (level error) when attempting to convert via one of the MS Office nodes but jadice server is not running under MS Windows.
    • JS.MSOFFICE-LOCAL_SYSTEM_USER (level warn) when jadice server is installed as service running under the local system user and a conversion via one of the MS Office nodes is triggered.

Release 4.3.1.5 (2011-05-06)

  • Update to jadice® document platform 4.3.0.9
    See also Release Notes for jadice® document platform
  • New com.levigo.jadice.server.msoffice.MSProjectNode in order to convert MS Project Files to PDF or XPS with MS Project 2010.
  • Fixed handling of PageCountLimits in JadiceShaperWorker.
  • Improved several aspects of the conversion via MS Office:
    • Suppressing "Repair" dialogue of MS Word.
      See JS-621 -BG-
    • Suppressing misc. dialogues of MS Visio.
      See JS-628 -BG-
    • Introduced optional flag to switch between PDF and PDF/A when exporting with native PDF export in MS Word, Powerpoint, Visio and Project (Versions 2007 and 2010).
      This flag can be configured in server-config/ms-office/export-configuration.xml
      See JS-613 -BG-
    • Logging of the page range to export
  • New documentation of the syntax and semantics of the XML rule sets for the DynamicPipelineNode as XML schema definition, located at server-config/dynamic-pipeline-rules/dynamic-pipeline-rules.xsd.
  • Revised third party licenses.

Release 4.3.1.4 (2011-03-18)

  • Update to jadice® document platform 4.3.0.8
    See also Release Notes for jadice® document platform
  • Improved JMX:
    • MBean com.levigo.jadice.server:Name=JS.REQUEST,Type=JobScheduler
      • emits notifications for every job state change
      • has new attributes to observe the server's efficiency of the last 10 minutes, 1 hour and 24 hours
    • MBean com.levigo.jadice.server.ws.monitor:name=message-monitor,type=MessageMonitor
      • emits notifications for every in- / outgoing WebService message
  • New com.levigo.jadice.server.jadice4x.DocumentPrintNode for server sided printing via jadice document platform and the JPS API.
  • Improved default ruleset for DynamicPipelineNode so that emails are rendered in better quality. Emails and Outlook MSG files are now re-dispatched to the ScriptNode and the script "EMailConversion.groovy".
  • New script server-config/email-conversion/EmailPreviewConversion.groovy which renders a preview of an e-mail without converting its attachments.
  • Fixed IOException thrown by TNEFWorker.
    See JS-591 -BG-
  • Fixed potential ConcurrentModificationException in class com.levigo.jadice.server.util.DynamicPipe.
    See JS-595 -BG-
  • Improved sanity check for illegal characters (?, ', :, *, <, > and |) when dumping temporary files. These characters are replaced with underscore; white spaces such as new line oder tab character are replaced by space.
    See JS-597 -BG-

Release 4.3.1.3 (2011-02-07)

  • Update to jadice® document platform 4.3.0.7
    See also Release Notes for jadice® document platform
  • Update of external dependencies:
  • Sanitization of file names (i.e. replacing illegal tab and newline characters) when dumping for MS Office / OpenOffice conversion.
    See JS-573 -BG-
  • Introduced pooling for XML Transformers.
    See JS-560 -BG-
  • Added detection of MS Visio Drawings 2007 format (.vdx) in StreamAnalysisNode's default rulebase.
  • When sub pipeline could not be announced due to a ClassNotFoundException no stacktrace will be logged anymore
  • API enhancement: Methods com.levigo.jadice.server.util.Util.copyAndClose(), .copyStream() and .discardStream() now return long value with number of bytes copied / discarded instead of void.

Release 4.3.1.2 (2010-11-15)

  • Update of external dependencies:
  • New XSLTransformationNode to perform an XSL transformation of XML data.
  • Enhancement: Warnings, errors and failures of an XML Transformer will be propagated to the client with Message ID JS.XML-TRANSFORMER_EXCEPTION.
    Concerns: XSLFOFormatterNode, XSLTransformationNode and MailBodyCreatorNode (email conversion)
    See JS-562 -BG-
  • Altered xsi:schemaLocation in activemq-broker.xml that caused an online lookup of the referenced XML Schema.
  • Fixed issue when activating MS Office in 64bit environment.
  • Fixed potential NullPointerException in MultipartRelatedWorker when converting a multipart/related mail. This issue has occurred when a root part with given Content-ID was not referenced by its surrounding multipart/related block.
    See JS-559 -BG-
  • Parameter was missing in recursive call of the email conversion script.
    See JS-552 -MG-
  • Enhanced ExternalProcessCallNode: New boolean property DestroyRemainingProcessesOnAbort in order to destroy external processes when the associated job is aborted or fails.
    See JS-548 -BG-
  • New derived email conversion script to convert attachments via MS Office.
    See JS-566 -BG-
  • New example: Simple application that demonstrates how to implement a "hot folder" conversion.

Release 4.3.1.1 (2010-08-23)

  • Update to jadice® document platform 4.3.0.3
    See also Release Notes for jadice® document platform
  • Revised log levels for consistent handling of errors, warnings and failures.
    See JS-533, DOCP-845
  • Exposing more statistical data of object pools (FOP, Open Office, MS Office)
    See JS-535 -BG-
  • Exposing statistical data about the most recent job execution times in the MBean JobScheduler
    See JS-537 -BG-
  • Deep inspection of incoming JMS message headers in debug mode
    See JS-523 -BG-
  • New rule base for dynamic conversion via Microsoft Office
    See JS-528 -BG-
  • Enhanced StreamAnalysisNode:
    • Instead of creating a new stream, the old one is reused and its StreamDescriptor is enriched with the analysis result
      See JS-538 -BG-
    • XPS documents are recognized as application/vnd.ms-xpsdocument now
      See JS-541 -BG-
  • Files are not dumped with a random file name anymore but with the name provided in the StreamDescriptor when converting via MS Office or OpenOffice. If applicable, the file extension is taken from the result of the StreamAnalysisNode.
    Note: Please consider the new semantic of the setFilename() methods in the MS*Nodes
    See JS-524 -BG-
  • Enhanced MS*Nodes:
    New feature to specify a range of pages via method setExportRange() in order to convert only a part of the source document.
    See JS-509 -BG-
  • Refactored webservice configuration:
    See JS-542 -BG-
    • Update to Apache CXF 2.2.9
    • Endpoint is now established via dependency injection as proposed by Apache CXF
    • Extracted performance monitoring and re-implemented as injectors; as consequence the JMX object has changed
    • Note: Please consider the changed format of server-config/application/webservices.xml
  • Enhanced FilenetP8InputNode: Node supports now documents with more than content element. This feature can be disabled via FilenetP8InputNode.setIgnoreAdditionalContentElements(boolean).
    See JS-540 -BG-

Release 4.3.1.0 (2010-07-26)

  • Update to jadice® document platform 4.3.0.2
    See also Release Notes for jadice® document platform
  • Upgrade to Spring 3.0.2.RELEASE
  • Upgrade to ActiveMQ 5.3.2 of the pre-configured MOM
  • New feature: Security API
    • Optional enforcement of client authentication via Spring Security
    • Role based enforcement of node and job limits
    • Role based restrictions on node access or node properties
  • New feature: Client notification when nodes are created dynamically on server side while executing a job
  • Enhanced limit handling:
    • New limit type com.levigo.jadice.server.NodeCountLimit that limits the maximum number of nodes that are allowed to be run in one job
    • Several limits (especially with action WARN) can be applied to the same job or node
    • Limit classes are stateless, so they can be applied to several nodes or jobs
  • Stream transport (in StreamInputNode and StreamOutputNode) can optionally calculate + verify checksum and abort the job if verification fails on server side or throw an IOException if verification fails on client side.
    This option can be configured in server-config/application/instance-base.xml, bean jadice-server-fileprovider.
  • New node com.levigo.jadice.server.pdfmerge.PDFSplitNode to split a PDF document in several single-page PDF documents
  • New node com.levigo.jadice.server.nodes.RouterNode to define a dynamic stream routing on the basis of the streams' meta data
  • Enhanced URLInputNode:
    • New property to (dis)allow the retrieval of relative resources (especially for HTML rendering)
    • Several URLs can be retrieved at once
  • Enhanced ExternalProcessCallNode: This node can now be used as source or sink in a workflow, too
  • Enhanced NotificationNode: Sends the StreamDescriptor of every stream that passes through it to the client
  • Enhanced JadiceDocumentInfoNode: Optional client warning or job abort if document format is not supported by the jadice document platform
  • Fixed PDFCompositeNode: Handling of overlays with rotated MediaBox
  • Improved handling of temporary directories for conversion via OpenOffice.org
  • com.levigo.jadice.server.util.DynamicPipe overrides java.io.InputStream.available() for the read-end side.
  • Manifest enhancement: jadice server modules contain Package Version Information that can be retrieved via java.lang.Package.
    This information is also used to check if client library version and server version match. If an older client version is detected a warning with MessageID JS.SERVER-OLD_CLIENT_VERSION will be emitted to the client.