eXist Changelog

What's new in eXist 2.1

Sep 24, 2013
  • More significant changes:
  • The following changes can potentially break existing applications. Make sure you review your code before upgrading.
  • [bugfix] Fixed wrong sequence type checks for nodes, e.g. when passing function arguments. May reveal XQuery coding errors which were previously ignored by eXist-db!
  • [bugfix] Try-catch: catch expressions need to be analyzed. Warning: may reveal hidden errors in XQueries which previously compiled.
  • Bug fixes:
  • [bugfix] "stable" was treated as a reserved keyword and could not be used in xpath expressions or xml fragments.
  • [bugfix] Added -Dfile.encoding=UTF-8 in vm.properties to fix rare encoding issues on some machines.
  • [bugfix] Allow "math" namespace to be overwritten (it has the same status as the function namespace in XQuery 3).
  • [bugfix] Allow restxq access to Query parameters from any HTTP method (was previously limited to GET)
  • [bugfix] Applied password ant task patch #807.
  • [bugfix] Applied patches #819, #820 and #821: Race condition(s) and missing unlocks on failure in BrokerPool. FileSyncThread may access null endOfLog. On some error conditions Journal channel may be null which was not checked.
  • [bugfix] Avoid NPE in ft:get-field if document does not exist.
  • [bugfix] Disabled left mouse click on system tray icon in GNU/Linux which otherwise leads to display issues.
  • [bugfix] Fix for self axis in filter step.
  • [bugfix] Fixed "cannot convert xs:boolean('false') to a node set" issue in filter using OR with empty node set, e.g. /blah[a='A' or b='B']. Test added.
  • [bugfix] Fixed unintended removal of ACLs in some cases.
  • [bugfix] File module: file:sync should preserve comments and processing instructions and also not expand xincludes.
  • [bugfix] Fixed caching in XQueryURLRewrite. Cache was not used when it should have been.
  • [bugfix] Fixed changing permissions on copy of document making original document permissions change too.
  • [bugfix] Fixed database corruption in Replication extension
  • [bugfix] Fixed issue with last() used in sequence of filters.
  • [bugfix] Fixed math:pow() and math:exp10() functions.
  • [bugfix] Fixed memory leak in higher-order functions.
  • [bugfix] Fixed regression: document set not being sorted by root expression caused missing results.
  • [bugfix] Fixed regression: wrong return type computation leads to wrong results in for-where expression.
  • [bugfix] Fixed wrong dependency computation for where expressions involving a boolean operator.
  • [bugfix] Fixed XQuery error reporting.
  • [bugfix] Fixed: last() returns incorrect position when used in a primary expression combined with a filter.
  • [bugfix] Ignore integer value if catch format exception
  • [bugfix] Improve error reporting from XQuery parser.
  • [bugfix] KWIC module: Made configuration optional missing.
  • [bugfix] Make compress module functions e.g. compress:zip() obey exist:serialize option parameters like indent for XML resources.
  • [bugfix] Make sure the StatusReporter thread used during db initialization terminates even if there were errors.
  • [bugfix] Make the wrapper work with Java6u51 on MacOSX.
  • [bugfix] Optimizer did not descend into "order by" or "group by" clause of a FLWOR.
  • [bugfix] Optimizer failed to properly rewrite if-then-else.
  • [bugfix] Package manager: enforce dependencies: warn user if package dependency could not be resolved or a wrong version of the required package is currently installed.
  • [bugfix] Properly close transactions if unexpected errors happen. Hanging transactions may otherwise result in data loss.
  • [bugfix] Refactored bugfix to also apply dynamic serialization options to stored documents for use with compression:zip() function et al.
  • [bugfix] Request module: request:get-data should preserve comments and processing instructions when parsing XML.
  • [bugfix] static-base-uri() should not throw an exception, return empty sequence instead. Fix for #811.
  • [bugfix] Setting Content-Length allows download large ZIP backup files.
  • [bugfix] Try to improve memory usage. Only read the stream once and cache the result in constant memory use.
  • [bugfix] Uppercase-conversion must be done with the English locale; it causes a problem for e.g. Turkish Locale.
  • [bugfix] When creating a range index on long keys (> 1k) and a large data set, parts of the index btree became unreachable. While this is a rare and highly random error, it may result in wrong query results over time. Fix: changed the btree page split algorithm to take the real size of the keys into account, so if one of the keys is close to the max. page size, it will be moved into its own page.
  • [bugfix] XQuery triggers: set module load path relative to location of trigger script, so relative import paths can be resolved.
  • New features:
  • [feature] Added support for the SpiderWebChart type in the jfreechart module.
  • [feature] Added a MicroXML Serializer
  • [feature] Added community-built binaries of the windows 64bit community version of the wrapper.
  • [feature] Added configuration dialog to system tray launcher to make it easier for new users to configure memory, cache and data directory settings.
  • [feature] Added restxq %rest:header-param %rest:cookie-param
  • [feature] Added restxq support for %output:indent and %output:omit-xml-declaration
  • [feature] Added further restxq eXist-db specific functions for registering/de-registering Resource functions.
  • [feature] Full text index: allow option diacritics="yes|no" for diacritics folding and choose default analyzer accordingly.
  • [feature] Package manager: warning about unresolved dependency should tell you which package version is missing.
  • [feature] Replication extension: do not require to set client-id for publisher, do require client-id to be set for subscriber at durable subscriptions
  • Dependency upgrades:
  • [lib-upgrade] Update of replication extension: Upgrade to ActiveMQ 5.8
  • [lib-upgrade] updated betterform to version bf5-RC3 (including DWR3, Saxon HE 9.4)
  • [lib-upgrade] Update of content extraction extension: upgrade to Apache Tika 1.4
  • [lib-upgrade] Updated XProc extension: support the latest XML Calabash 1.0.9
  • [lib-upgrade] Upgrade to jetty 8.1.9
  • Performance:
  • [performance] Always use structural index for attribute lookups. Contrary to 1.4, scanning the DOM has no advantages on 2.0 and limits concurrency.
  • Security:
  • [security] Fixed permission check where an existing resource could be overwritten by any user.
  • [security] Fixed permission check in ft:search for matching documents.