Release Notes -- Apache Jackrabbit -- Version 1.3.1 Introduction ------------ Apache Jackrabbit is a fully conforming implementation of the Content Repository for Java Technology API (JCR). A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more. Typical applications that use content repositories include content management, document management, and records management systems. Apache Jackrabbit 1.3.1 is patch release with bug fixes for issues like correctly reporting the number of access controlled query results and proper cleanup after indexing PDF documents. See the Apache Jackrabbit website at http://jackrabbit.apache.org/ for more information. Changes in this release ----------------------- Improvements [JCR-985] - refactor access to SAXParser and log which parser class is used [JCR-1028] - Remove WARN logs for missing text extractors Bug fixes [JCR-385] - ClassCastExeption when executing union queries [JCR-672] - Deadlock on concurrent save/checkin operations possible [JCR-699] - Clustering: re-registration of nodetypes is not synchronized [JCR-778] - Error on query initialization - intermittent [JCR-848] - javacc-maven-plugin version in jackrabbit-core pom file [JCR-856] - NodeAddMixinTest assumptions on addMixin behaviour [JCR-858] - NotQuery does not implement extractTerms() [JCR-859] - rep:excerpt() may return malformed XML [JCR-885] - BundlePersistenceManager.externalBLOBs can not be configured [JCR-886] - Index recovery may fail with IllegalArgumentException [JCR-892] - XML export (stream) doesn't initialize TransformerHandler ... [JCR-893] - More query classes with missing extractTerms() [JCR-894] - rep:excerpt() not working for attribute searches [JCR-895] - Registering node type names with spaces fails in clustered ... [JCR-897] - ItemState constructor throws IllegalArgumentException [JCR-900] - Lucene queries are not properly rewritten [JCR-911] - Remove sanityCheck() from ItemImpl.getSession() [JCR-912] - OverlappingFileLockException with JRE 1.6 [JCR-913] - DatabaseJournal.checkSchema generates "Cannot call commit ... [JCR-915] - Invalid Journal Record appearing when read during sync ... [JCR-929] - Under Heavy load in a Cluster HTTP Threads Block and stall ... [JCR-931] - cluster synchronization NPE [JCR-933] - RepositoryImpl.acquireRepositoryLock() fails to detect that ... [JCR-945] - Use correct version number in repository descriptor [JCR-950] - The move method doesn't remove the source node [JCR-951] - OracleFileSystem uses getClass().getResourceAsStream to load ... [JCR-972] - Bundle consistency check does not work [JCR-973] - XML import using MacOS X WebDAV client does not work [JCR-980] - Single quote in contains function is not parsed correctly [JCR-981] - XPath relative path support missing for "is null" and ... [JCR-993] - corrupted paths after moving nodes [JCR-1006] - StackOverflowError if too many versions of a node are created [JCR-1033] - webapp doesn't compile (use of enum keyword) Release Contents ---------------- The release consists of a single source archive and a number of pre-compiled binary component archives. * Jackrabbit source code (jackrabbit-1.3.1-src.jar) The main source archive contains a "jackrabbit-1.3.1-src" directory with the full released source code and build environment. Use the following commands (or the equivalent in your system) to build all the released components with Maven 2: $ jar xf jackrabbit-1.3.1-src.jar $ cd jackrabbit-1.3.1-src $ mvn install The components contained in the released source archive are listed below (with the pre-compiled binary archives in parenthesis): * Jackrabbit API (jackrabbit-api-1.3.1.jar) Interface extensions that Apache Jackrabbit supports in addition to the standard JCR API. * Jackrabbit JCR Commons (jackrabbit-jcr-commons-1.3.1.jar) General-purpose classes for use with the JCR API. * Jackrabbit JCR Tests (jackrabbit-jcr-tests-1.3.1.jar) Set of JCR API test cases designed for testing the compliance of an implementation. Note that this is not the official JCR TCK! * Jackrabbit Core (jackrabbit-core-1.3.1.jar) Core of the Apache Jackrabbit content repository implementation. * Jackrabbit Text Extractors (jackrabbit-text-extractors-1.3.1.jar) Full text extraction for for Jackrabbit. Includes support for example for Adobe PDF and MS Excel, PowerPoint and word files. * Jackrabbit JCR-RMI (jackrabbit-jcr-rmi-1.3.1.jar) RMI network layer for the JCR API. * Jackrabbit WebDAV Library (jackrabbit-webdav-1.3.1.jar) Interfaces and common utility classes used for building a WebDAV server or client. * Jackrabbit JCR Server (jackrabbit-jcr-server-1.3.1.jar) WebDAV servlet implementations based on JCR. * Jackrabbit Repository Classloader (jackrabbit-classloader-1.3.1.jar) Java classloader for loading classes from JCR content repositories. * Jackrabbit Web Application (jackrabbit-webapp-1.3.1.war) Deployable Jackrabbit installation with WebDAV support for JCR. * Jackrabbit JCA Resource Adapter (jackrabbit-jca-1.3.1.rar) J2EE Connector Architecture (JCA) resource adapter for Jackrabbit. All files contain a README.txt file with more information. Note that external runtime dependencies are only included for the war and rar archives. Other dependencies can be downloaded either manually or automatically using the Maven build system. Each release file is accompanied by SHA1 and MD5 checksums and a PGP signature. The public key used for the signatures can be found in the KEYS file located in the parent directory. Upgrading to Jackrabbit 1.3 --------------------------- Apache Jackrabbit 1.3 is fully compatible with the previous 1.x releases. A previous Apache Jackrabbit 1.x installation can be upgraded by replacing the relevant jar files with the new versions. No changes to repository contents are needed. This release replaces the previous jackrabbit-index-filters component with an improved jackrabbit-text-extractors component. An existing Jackrabbit installation can be upgraded to use the new text extraction components by deploying the new jackrabbit-text-extractors jar file and updating the relevant search index configuration. Jackrabbit still supports old index filter configurations, but to use them you need to leave the old jackrabbit-index-filters jar file in place. See below for a more detailed description of the structural changes in the Apache Jackrabbit 1.2 release. Upgrading to Jackrabbit 1.2 --------------------------- The most notable effect of the component restructuring in the 1.2 release was that the previous jackrabbit-core component has been split in three pieces: jackrabbit-api, jackrabbit-jcr-commons, and jackrabbit-core. Thus you need to replace the previous jackrabbit-core-1.x.jar file with the three new jar archives. The structure of the WebDAV components have also changed. WebDAV support now consists of the webapp component jackrabbit-webapp and the libraries jackrabbit-webdav and jackrabbit-jcr-server. The Apache Lucene dependency used for full text indexing has been upgraded to version 2.0 in this release. Lucene 2.0 is able to continue using existing index files, but you can also manually recreate the index with Lucene 2.0 extensions by removing the "index" directories of a closed repository. Jackrabbit will automatically re-index content when the repository is next started. Also the Apache Derby dependency has been upgraded to version 10.2. Like Lucene, the new Derby version can keep using existing database files. New repositories and workspaces will however be created using extensions and improvements introduced in the 10.2 version. Known issues in this release ---------------------------- The known issues in this release are listed below: [JCR-18] - Multithreading issue with versioning [JCR-43] - Restore on node creates same-name-sibling of OPV-Version ... [JCR-320] - BinaryValue equals fails for two objects with two different ... [JCR-392] - Querying element by number does not work [JCR-406] - If header evaluation compliance problems [JCR-435] - Node.update() does not work correct for SNS [JCR-449] - inconsistency in internal version items during commits [JCR-509] - TCK: NodeTest#testNodeIdentity fails if versioning and ... [JCR-517] - Reserved status of namespace jcr not enforced. [JCR-522] - XPath parser too tolerant [JCR-537] - Failure to remove a versionable node [JCR-538] - failing Node.checkin() or Node.checkout() might leave ... [JCR-566] - Versioning bug with restore and transactions [JCR-575] - unicode escapes in files generated by JJTree [JCR-591] - XPath position function does not work [JCR-607] - Importing XML at root level using a session from JCA ... [JCR-609] - Empty custom_nodetypes.xml after restart [JCR-625] - Memory is not freed up when jackrabbit-server war is ... [JCR-639] - Allow modification of OPV=IGNORE items even if parent ... [JCR-643] - Own AccessManager + VersionManager : AccesDenied problem [JCR-674] - String properties with invalid XML characters export as ... [JCR-690] - Nodes' and properties' names with invalid XML characters ... [JCR-709] - ArrayStoreException is thrown when jcr:deref() is used ... [JCR-714] - TCK: Test root path not escaped when used in XPath queries [JCR-752] - Test cases leak sessions [JCR-759] - handling of namespace registrations in AbstractJCRTest [JCR-769] - Unable to login with two different Credentials to same ... [JCR-774] - TCK: Test that expect that modifications made by Session1 ... [JCR-777] - Order by clause using child axis does not throw ... [JCR-811] - SetPropertyAssumeTypeTest check for non-protected string ... [JCR-812] - TCK: RestoreTest.testRestoreLabel [JCR-813] - TCK: testSaveMovedRefNode [JCR-823] - NamespaceRegistryTest makes assumptions about legal names [JCR-832] - BundleDBPersistenceManager does not free blobStore resources [JCR-843] - XPath does not work with sub-axes [JCR-853] - [PATCH] Jackrabbit disallows some nodetype changes which ... [JCR-861] - Connector should support LocalTransaction as well as ... [JCR-862] - unsynchronized access on 'itemCache' map in ItemManager [JCR-905] - Clustering: race condition may cause duplicate entries ... [JCR-908] - Unable to properly restore a previous version of a node ... [JCR-932] - lossy SQL parsing [JCR-935] - ConcurrentModificationException during logout (cont'd) [JCR-936] - Using Oracle bundle PM throws SQL exception (cannot insert NULL) [JCR-937] - CacheManager max memory size [JCR-938] - cluster synchronization JournalException [JCR-960] - Duplicate Folder of the same name in JCR webdav, could be ... [JCR-962] - Deadlocks in ConcurrentVersioningWithTransactionsTest [JCR-963] - Failed to build path error in cluster environment [JCR-964] - Cannot rebuild corrupt or missing search index from DataSource [JCR-983] - fn:upper accepted in too many places [JCR-1002] - QueryManager does not throw exception if property name ... [JCR-1008] - SerializationTest leaks sessions [JCR-1013] - Connection.setAutoCommit(...) fails if connection is ... See the issue tracker at http://issues.apache.org/jira/browse/JCR for more details.