ChangeLog 1.2

  • Fixed in-memory DOM tree construction bug: in some very specific cases, constructed nodes were skipped during serialization and did not show up in the output.
  • Bug fix: cached password for remote XMLDB API connection is not properly reset after a user's password was changed.
  • On db shutdown, properly unregister all JMX MBeans.
  • XInclude filter: properly implement
  • Fixed XPath bug: for some descendant-axis queries on nested elements, duplicate nodes were not filtered out properly. The query engine returned duplicate results.
  • Prevented NPE's in ant tasks.
  • reading collection.xconf is now fail safe. Errors in the configuration document will not cause an exception.
  • Temporary workaround for bug "Invalid collection.xconf causes a non startable database"
  • New functions gives you the xpath of a node, attributes in the hierarchy are converted to predicates
  • Fix NPE in bad-formed module URI
  • Fixed NPE upon update delete of root element
  • Fixed namespace issue: in-scope namespace declarations were not properly visible to functions located in other modules.
  • Enhanced rendering of XQuery Function Documentation.
  • Clean up SAXSerializer instances before returning them to the pool.
  • Fixed concurrency issue: built-in XQuery modules
  • Fixed base-uri() call on document node causing a class cast exception
  • Fixed locking issue where permission exception caused lock on collection not to be released.
  • Build jmx extensions into extra jar lib/extensions/exist-jmx.jar.
  • Fixed the HistoryTrigger
  • Applied patch 1775400 supplied by Michael Westbay
  • Fixed deficiencies in computed document constructors : they should allow nested document constructors
  • Fixed chmod/chown implementation
  • Added function
  • Applied Get collection cache size for Cache stats; patch by Gary Larsen
  • Applied patch Fix adminClient's dialog gridBag resizing ; Kindly contributed by Avagvwctopoulos Koctis (sperxios)
  • Use launch4j to generate a native windows .exe wrapper around the generated installer. Without this, eXist will not install properly on windows vista.
  • Applied patch #1824991, webdav lock operation does not meet RFC4918 requirements, supplied by Brad Clements.
  • Updated log4j to 2.1.15
  • Catch NPE in NativeBroker.getTextSearchEngine and log a warning.
  • Fixed parser bug (ignoring whitspace)
  • Fixed another positional predicate bug
  • Fixed NPEs if request/response/session object is not in scope and a function is called
  • Fixed a bug in
  • Fixed: <> tags lost during ancestor or parent path steps.
  • Fixes for various issues which improved XQTS results a lot.
  • Updated uses the user in the current xquery context
  • Added RedirectorServlet as a different, maybe more powerful mechanism to redirect HTTP requests.
  • Added some missing HTTP request functions:
  • Removed passing a Java Collection Object
  • Libraries from lib/extensions need to be copied into the war distribution as well.
  • Split of modules into seperate jars, and moved all modules to lib/extensions
  • Fixed bugs in
  • Fixed XQTS test base-URI-18 regression
  • Fixed construction bug.
  • Fixed: Another NGram bug fix: matches were not tagged if the query result was included into a constructed node.
  • Fix for NPE in
  • Added xsl-fo extension module
  • Applied Patch to fix NPE in CollectionCache on startup
  • Applied NPE in CollectionCache on startup
  • Don't approximate in seconds-from-duration()
  • Fix for Double default namespace
  • Added function , which encodes a string into a value of type
  • Clean up of loged SAXParseExceptions.
  • Validation is now configurable per collection, just like range indexes.
  • Validation: Added namespace of root element of parsed document to validation report.
  • Fixed a BTree bug which led to stack overflows. It seems this could have caused db corruptions in some cases.
  • Added new function , which uses the neko HTML parser to parse an HTML string into well-formed XML.
  • Small modifications in function to avoid another NullPointerException.
  • Fixed NullPointerException in DocumentImpl.
  • Added function :string?) to parse a string value into an XML fragment.
  • webDAV: extended DAV header: webdav version 1 and 2 are now reported, OPTIONS: added method DELETE, COPY, MOVE
  • Fixed ConcurrentModificationException in Collection, which was leading to a deadlock.
  • Extended logging regarding webdav.
  • Fixed NPE during shutdown.
  • Misc validation improvements
  • will have extra attribute 'repeat' when error message is reported more than once
  • Fixed: executing query the first time included all documents in the database, though it was executed in the context of a single collection.
  • Fixed bug 1691177 leading to "attribute X has no parent" error.
  • Fixed bug 1691177 leading to "attribute X has no parent" error.
  • Introduced FODC0002 error in
  • Introduced a new function that will be needed by the XQTS app.
  • Deprecated in favour of
  • Deprecated in favour of
  • Improve performance of CollectionConfigurationManager by replacing XmldbURI with CollectionURI.
  • Fixed Wrong illegal type error message
  • Fixed locking issue: collection was modified without being locked.
  • Major redesign with respect to collection configurations (to fix an existing memory leak)
  • Fixed remaining bugs in in-scope-prefixes() and namespace-uri()
  • Fixed 'string' cast as
  • Improved which now passes all the XQTS tests.
  • Experimental: added a "" pragma which can be used to force eXist to not use the structural index to select nodes.
  • Applying SF Patch 1768921 - fix for SQL Extension module for properly closing JDBC connections, recordsets and statements.
  • More deadlock issues fixed. Better deadlock detection: identifies circular wait dependencies and throws a DeadlockException if automatic resolution is not possible.
  • extended to append fragments of different node types.
  • Update for webdav inferface: fixed NPE for UNLOCK method, MacOsX fix: allow storage of 0 byte XML documents (xml place holder)
  • Added NGram functions and
  • Corrected free memory computation: reserve at least 20% of the max. memory for emergency.
  • Applied New function: Deep-Copy ; Scott Warren - ocomsoft
  • Partly implemented propose borrowing Ant's patch.xml and check.xml
  • Applied LDAP passwords patch ; Submitted By andrewuwe
  • Applied patch Control number of backup files ; Submitted By: Gary Larsen
  • Applied Fix for validation against Schemas using a namespace
  • Fixed potential ArrayIndexOutOfBounds exception.
  • Permit storage of binary resources using
  • Webdav-html page: binary file size are rounded
  • Fix for webdav ; collections now browseable again for webbrowsers (
  • Another deadlock fix: detect and handle a circular wait on different resources.
  • Fixed URL Handler shows ERROR in log, but works OK
  • Multiple grammar catalogs should be allowed for validation
  • Fix for WebDAV: webdav interface can now be mounted my MacOsX 'Finder'.
  • Added compression module :
  • Redesigned exist startup scripts (.sh .bat)
  • Added JMX agent to eXist.
  • Another deadlock fix: XPathQueryService.beginProtected/endProtected need to reserve a DBBroker between the two calls.
  • Validation of XML using DTD's fail when using the XMLgrammarPool. Seem to be a xerces issue. added workaround
  • Fixed bug 1687079: "Extension module namespaces missing".
  • Fixed bug 1683636: " fails on function in module". Imported modules are now visible within the eval() function.
  • Applied patch 1739796: REST server patch for text/html mimetype
  • Fixed bug 1740891: looses its context. ModuleContext needs to overwrite XQueryContext.copyContext.
  • Fixed bug 1740880: Element construction with namespace
  • Fixed bug 1740885: ne operator does not work.
  • Validation: implicit/explicit validation share grammar caching
  • Fixed deadlock issues
  • Fixed: NodePool grew without bounds, thus causing memory issues after a while.
  • Made validation report more usable
  • Further updates to the SOAPServer to provide better interoperability
  • Added new extension package org.exist.fluent, an API for databases running in embedded mode that takes advantage of Java 5.0 features.
  • Committing patches by José María Fernández, add's RPC encoded style alongside document literal style.
  • Added indexes: N-gram and Spatial
  • Fixed NPE in serializer.
  • functions now accept instead of less convenient, butter better to the specs
  • Deadlock conditions found and fixed.
  • Revision of validation function. A year of work.... promised in Prague (2006)
  • Fixed long standing issue regarding and
  • Fixed doc(""))
  • Do not enforce XPath 1.0 compatibility.
  • Fixed an NPE on the resolver.
  • Fixed two major flaws in our implementation of document locks.
  • Fixed: min() and max() can not operate on QNames
  • Fixed "<" and ">" are escaped in comments
  • Fixed NPE in client index tool
  • Fixed Incorrect filename displayed in status ; patch by Gary Larsen
  • Added implementation of custom protocol handler for ;
  • Added: Classes that implement a ring buffer. To be used by upcoming xml validation features and exist protocol handler.
  • webdav: Fixed locking issue in webdav/MKCOL
  • Fix Webstart: missing sTax jar
  • New HTTPModule.
  • Added "add-exist-id=element|all|none" to the available serialization options. T
  • Repaired unwanted dependency with org.apache.commons.pool.PoolableObjectFactory (caused NoClassDefFoundError for OxygenXml).
  • now uses ValueComparison as per the specs
  • Fixed XQuery bug: optimized path step on descendant axis sometimes ignored child nodes! Example: //a where b is a child of a.
  • Upgrade to ant 1.7.0, 4.x and xmlunit 1.1
  • Added
  • Implement according to the specs.
  • Fixed ClassCastExceptions.
  • Fixed possible memory leak in optimizable expressions.
  • Added an option to disable/enable optimizations at runtime: declare option "enable=yes|no";
  • The pragma now also understands an optional "enable" parameter: //((# enable=no#) { foo })
  • Fixed issue with globally declared variables.
  • Small change in XmldbURI to avoid creating URIs too frequently.
  • Installer: ask for admin Password
  • Fixed performance leak: expressions like /nodeA//nodeB were extremely slow.
  • Changed XInclude to be compliant with the specs.
  • Fixed bug in XQuery lexer
  • Handle these corner test cases : ,"") ,"") ,"")
  • Fixed return type of String-derived atomic values.
  • Binary storage format changed!!!!
  • Low-level changes in the B+tree code: use prefix compression for keys stored in leaf pages.
  • Better processing of return type in avg() and sum()
  • Missing EXIST_HOME causes some tests to fail.
  • Fixed: range indexes were not properly updated after removing a node.
  • Image: added
  • Fixed lack of timezone in gMonth string value.
  • Fixed: XQuery parser complained about "in" as element name: <root><in>foo</in></root>.
  • Made base-uri() consistent between in-memory and persistent nodes.
  • Fixed client to work in headless mode again
  • XUpdate performance improvments.
  • New: Modularized indexing architecture.
  • Added new function,
  • When executing a query via the REST interface, the base URI property of the query should be set to the collection path specified in the query.
  • Register stax-api-1.0.1.jar which is required by all Java versions < 1.6
  • Implemented java.xml.stream.XMLStreamReader for fast DOM traversals in embedded mode.
  • Fixed Startup scripts fail under solaris
  • Applied patch by Christian Salm: NPE in NativeBroker when recovery is turned off.
  • Fixed left hand operand of a general comparison involves nodes that do not belong to the context sequence's document set.
  • Optimize now works on multi-predicate expressions
  • Fixed: the SOAP interface refused to accept any query containing an ampersand, e.g. //foo
  • Optimize
  • Applied patch users' groups eXtensions by Massimo Martinelli, Marco Tampucci, and Ovidio Salvetti
  • Updated Java service wrapper.jar to version 3.2.3.
  • Set HTTP status if XQuery source file could not be found.
  • New combined range index on named element or attribute.
  • Added generator, Updated webdav and atom code to use new UUIDgen classes.
  • Fixed: resolver.jar not found by Cocoon-block build.
  • We only need one Base64 encoder/decoder in eXist. Favour org.exist.util.Base64Encoder
  • Fixed function without argument (used to throw ArrayIndexOutOfBounds).
  • During backup, ignore already existing contents.xml files in the database.
  • Fixed NPE in fulltext query.
  • Fixed: the xmlrpc interface (via methods upload/parseLocal) changed the mime-type of a resource to application/octet-stream if it could not determine the mime-type from the file name.
  • Image: Added a scale() function.
  • Applied patch: Search classpath for eXist's home
  • Applied patches (16289750/1628975) Ststaus generator; by Gary Larsen - Cache usage info for StatusGenerator Displays stats and graph of cache size usage. Also modified some graph colors so that buffer hits are green (green is good) and a glance can spot problems.
  • Added file format version id to symbols.dbx to inform user of changes in the binary storage format.
  • Fixed QName serialization bug.
  • Atom: added support for getting atom entries by id
  • Webstart: Updated asocat/pack200 compression library.
  • Fixed: fulltext lookups with wildcards (e.g. para &= "sinnlich") were partially broken.
  • Fixed slow queries on //
  • Fixed match-count behaviour
  • Fixed: support for multiple unary operators, e.g. 7, +-9
  • Fixed nested document construction bug:
  • Fixed string representation of in-memory attributes : let attr := attribute d { "xxx" } return string(attr)
  • Fix for HTML: cardinality issue in
  • webDAV improved error messages on 'PUT'
  • Fixed class cast exception in : let x := 1.1 return x div
  • should return false if the document exists but is not a binary resource.
  • Added dedicated performance test suite. Call with "build.sh benchmark", output goes into test/benchmark.
  • Fixed NPE in CollectionCache.
  • Fix for decoding resources names in webadmin interface
  • Improved string representation of decimal values (XQTS)
  • Changed to accept an empty sequence as start string
  • Added some tests for fulltext index by qname.
  • Added commons daemon code
  • Fixed: binary resource could not be removed via the web interface
  • , and should work with binary resources as well
  • Bug fix: acquired lock not properly released in functions and
  • Applied fix for HTML admin: size of binary docs too accurate
  • Applied add getServletContext to HttpSessionWrapper
  • Log any exceptions whilst sending SMTP mail and fix the truncated subject encoding problem
  • Fix NPE in NativeValueIndex.
  • xmlrpc: parseLocal should return 'true' when document is successfully inserted
  • Updated to XForms Filter 1.2 a lighter distribution, and updated to the latest version of Chiba
  • Improve performance of self axis queries in
  • The collection cache is now adaptive, which means it can grow under load. The limit is set in conf.xml.
  • Smaller performance improvements in node sets.
  • Bug 1589927: Fixed NPEs in quantified expressions with specified sequence type.
  • Webstart: should not throw exception/500 for incorrect filename extension
  • Webstart: Make webstart jar-download more robust
  • Webstart: Add DateHeader to jnlp download servlet
  • Make (# work with other axes than child.
  • Fixed a critical bug leading to failures during crash recovery, usually followed by a data corruption.
  • XMLRPC: getDocumentData/getNextChunk could not handle binary documents.
  • Small performance improvement (to speed up document removal).
  • Updated commons httpclient to 3.0.1
  • New optimization pragma (# #). Can currently be used in combination with a named fulltext index (see above) and the fulltext operators/functions &=, |= and near().
  • now returns an empty sequence instead of an empty string. Not compliant with the specs but compliant with the XQTS and Saxon.
  • Allowed user to switch authenticated user for the session if they re-send the Basic auth header
  • Bug: Nodes not properly update in fulltext index after deletion. Wrong node id comparison.
  • Added gev's profile pragma.
  • Moved jars to lib/user.
  • Added back service daemon class for commons daemon startup
  • Fixed: When an HTML file is inserted into eXist, it is converted to XML first using NekoHTML
  • Make sure the Scheduler is shutdown when shutting down eXist
  • Implemented
  • Added new standard function : normalize-unicode() (relies on the ICU4J library)
  • Fixed "he",2) which should return "2", not an empty string.
  • Webstart: added support for Pack200/gzip shrinked jar files.
  • deprecated doctype() in the fn namespace. Moved it to the util NS...
  • and are deprecated. Use instead.
  • Fixed: in an enclosed expression, an element was sometimes added as text if the previous node was a text node.
  • Changed the type of maxAge to (instead of int seconds) for
  • and failed to work with a relative URL for the collection, e.g. "/db", "admin", ""). Fixed.
  • Applied patch provided by Robert Koberg - Rest Authentication ; Also added code to store an authenticated user in the session
  • Patch 1588840 applied to the SOAP Server. Allow's XML Fragments. Fixes SOAP-ENV prefix. Fixes NPE when requested XQWS doesnt exist. Thank you José María Fernández
  • Added
  • Implemented codepoint-equal() function
  • Addressed range-indexed attributes.
  • Improved error message
  • Reviewed the way arithmetic operations (division) are handled.
  • Fixed memory leak: byte buffers for caching index data would never shrink. Limit those buffers to 64K max.
  • Improved the design of some fulltext related functions
  • Cleaned code in GeneralComparison
  • Added "group by" patch from Boris Verhaegen
  • Made code more robust in min()/max()
  • Enforce param check in
  • Fixed a few local namespace-uri issues that were reported by the XQTS.
  • Added pragma
  • Added more genericity in code.
  • Fixed: inserting a CDATA node via an XQuery update command led to an exception
  • Added ability to schedule with Cron timings and added an UserXQueryJob for scheduling XQuery jobs.
  • Added an extension module for performing scheduler related functions
  • Bug fix: overwriting a binary resource with an XML document led to a database corruption.
  • Introduced new Scheduler based on Quartz
  • Added function
  • Move jUnit tests to separate code tree ; additional changes will follow
  • Fixed: In-memory CDATA were not serialized at all
  • Added a new method inside xmlrpc isInServiceMode
  • Updated Javadocs.
  • Added new "service mode": a dba admin user can now switch the database into a protected service mode.
  • Fixed a few bugs in poisition().
  • Added BackupSystemTask: running the backup as a system task guarantees a consistent backup.
  • Added XQuery function that can be used to trigger arbitrary system tasks.
  • Backup can now write to a .zip file instead of the file system.
  • Interactice client: Added Bokmål translation by Trond Albinussen

Started on 4-11-2006 (rev4787)