Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: trunk
Fetching contributors…


Cannot retrieve contributors at this time

file 255 lines (199 sloc) 12.3 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
Release Notes -- Apache Jackrabbit -- Version 2.7.5


This is Apache Jackrabbit(TM) 2.7, a fully compliant implementation of the
Content Repository for Java(TM) Technology API, version 2.0 (JCR 2.0) as
specified in the Java Specification Request 283 (JSR 283).

Apache Jackrabbit 2.7 is an unstable series of releases cut directly from
Jackrabbit trunk, with a focus on new features and other improvements.
For production use we recommend the latest stable 2.6 release.

Changes in Jackrabbit 2.7.5

New Features

  [JCR-3745] Add JackrabbitObservationManager with additional methods for registering event listeners
  [JCR-3747] Implement JackrabbitObservationManager


  [JCR-3729] S3 Datastore optimizations
  [JCR-3730] Use object keys to create partitions in S3 automatically
  [JCR-3731] Multi-threaded migration of binary files from FileSystem to S3 datastore
  [JCR-3732] Externalize S3 endpoints
  [JCR-3733] Asynchronous upload file to S3
  [JCR-3734] Slow local cache built-up time
  [JCR-3742] Have DB related dependencies as optional in jackrabbit-data
  [JCR-3748] Allow configuring S3Backend programatically

Bug fixes

  [JCR-3721] Slow and actively called NodeId.toString()
  [JCR-3724] Increase the jcr-commons osgi package export versions
  [JCR-3725] jackrabbit-aws-ext missing from the reactor pom
  [JCR-3726] DavEx should always use multipart POST to bypass potential form-size restrictions
  [JCR-3728] AbstractAccessControlEntryImpl: add proper implementation for getRestrictions
  [JCR-3744] missing test of ordering in VersionHistory for linear version histories

Changes in Jackrabbit 2.7.4


  [JCR-3705] Extract data store API and implementations from jackrabbit-core
  [JCR-3708] More efficient node traversal during garbage collection in binary focused Repository
  [JCR-3720] Extract stats package from core to make it reusable
  [JCR-3723] Add support for observation statistics to RepositoryStatistics

Bug fixes

  [JCR-3709] DBDataStore updates 2 times the lastModified Date on touch when GC is running
  [JCR-3710] occasional test failures in TokenBasedAuthenticationTest
  [JCR-3711] RepositoryChecker versioning cleanup may leave repaired node in invalid type state
  [JCR-3718] Inconsistent Principal Validation between API and Import behavior
  [JCR-3719] ReferenceBinaryTest does not run when running test suite

Changes in Jackrabbit 2.7.3


  [JCR-3690] Allow Node Type Registry subclasses to check for conflicting content

Bug fixes

  [JCR-3691] Search index consistency check logs unnecessary warnings for repairable errors
  [JCR-3692] MoveAtRootTest fails and is not included in test suite
  [JCR-3697] UserManager not supported error when trying to remove Node in 2.7.2
  [JCR-3702] NPE if user w/o read permission on admin user node removes any node

Changes in Jackrabbit 2.7.2

New features

  [JCR-3641] AccessControl: provide ability to create JackrabbitAccessControlEntry with multi-valued restrictions


  [JCR-3675] test cases for "similarly" named nodes, diagnostics for names not in NFC
  [JCR-3686] Prevent removal/move of admin node
  [JCR-3687] Backport improvements made to token based auth in OAK

Bug fixes

  [JCR-1880] Same name sibling: Jackrabbit behaves differently when calling Node.getPath()
  [JCR-3364] Moving of nodes requires read access to all parent nodes of the destination node
  [JCR-3582] Unable to create nodes with whitespace chars != ASCII SP
  [JCR-3671] Config DTD doesn't allow ProtectedItemImporter
  [JCR-3673] ChildAxisQuery#advance method results in IllegalArgumentException through #indexIsValid method
  [JCR-3674] Unwarranted errors logged about nodetype registrations in a clustered environment
  [JCR-3677] Invalid SQL2OrderByTest.testOrderByScore test case
  [JCR-3678] MembershipCache max size is hard coded to 5000
  [JCR-3682] Better Exception Handling in TransactionContext to handle unchecked exceptions

Changes in Jackrabbit 2.7.1

New features

  [JCR-3534] Efficient copying of binaries across repositories with the same data store
  [JCR-3634] New method: JackrabbitRepository.login(Credentials, Map<String, Object>)
  [JCR-3637] JackrabbitAccessControlEntry: Add support for multi-valued restrictions
  [JCR-3652] Bundle serialization broken


  [JCR-2029] JCR Remoting: Use DAV:lockroot to expose the lock-holding node
  [JCR-3322] add TCK coverage of isNodeType(expandedName)
  [JCR-3408] Query tests should avoid casting to QueryManagerImpl
  [JCR-3591] Upgrade to latest Logback
  [JCR-3596] Reduce level for 'overwriting cached item' log messages in ItemManager
  [JCR-3616] unit tests should use valid namespace names
  [JCR-3620] JCA deployment descriptor for Apache Geronimo
  [JCR-3625] make port number for webdav integration tests configurable
  [JCR-3626] NodeTypeTest.getPrimaryItemName can get ssssslllllloooowwwww
  [JCR-3628] Embed cause in org.apache.jackrabbit.core.SessionImpl#getNodeByIdentifier while rethrowing IllegalArgumentException

Bug fixes

  [JCR-3228] WebDav/DavEx remoting throws workspace mismatch exceptions when running on port 80
  [JCR-3398] LOWER operand with nested LOCALNAME operand does not work with SQL2
  [JCR-3498] OUTER JOIN behavior is improperly excluding some values
  [JCR-3547] Datastore GC doesn't reset updateModifiedDateOnAccess on datastore
  [JCR-3595] AbstractJournal logging is too verbose
  [JCR-3601] AbstractJCRTest.cleanUpTestRoot() does not properly set testNodeType
  [JCR-3603] Index aggreate with property include does not speed up order by
  [JCR-3604] NodeMixinUtil.getAddableMixinName() can return mixins already inherited by the node
  [JCR-3605] Possible Deadlock during TimeoutHandler is running
  [JCR-3610] html excerpt broken when one of the indexed properties contains markup
  [JCR-3617] Inconsistent CachingHierarchyManager under concurrent access
  [JCR-3621] Race condition in MixinTest between event delivery and unregistering the observation listener
  [JCR-3629] [jcr2spi]RepositoryException lost in org.apache.jackrabbit.jcr2spi.ItemManagerImpl while querying on remote nodes exposed by jackrabbit-spi
  [JCR-3630] XSS in DirListingExportHandler
  [JCR-3631] SessionTest#hasCapability: missing save call
  [JCR-3633] If header field sent with PROPFIND (for lock discovery)
  [JCR-3635] Manually specified jcr:frozenUuid overwriting the one assigned by the VersionManager when versioning node
  [JCR-3639] VersionLabelTest adds label to root version
  [JCR-3642] Ambiguous exception expectation in SessionMoveVersionExceptionTest and WorkspaceMoveVersionExceptionTest
  [JCR-3645] LockManagerImpl do not prevent the internal PathMap in all relevant Methods
  [JCR-3653] SessionState logs nano seconds but writes 'us'
  [JCR-3654] Error MembershipCache if a group node contains MV property
  [JCR-3655] Better Locking inside LockManagerImpl
  [JCR-3656] improve error handling when shared node support is missing
  [JCR-3658] MembershipCache not consistently synchronized

Changes in Jackrabbit 2.7.0

New features

  [JCR-3550] Methods for determining type of array of values
  [JCR-3566] add TCK test for NaN and infinity double property values


  [JCR-3402] getSize() returning too many often -1
  [JCR-3495] Unregister from PrivilegeRegistry and NodeTypeRegistry on ...
  [JCR-3507] Make it possible to remove version histories via the ...
  [JCR-3513] Slower range query execution
  [JCR-3516] Search index consistency check should report and fix wrong ...
  [JCR-3517] Search index consistency check should be able to double ...
  [JCR-3519] Disable IOCounters based on log level
  [JCR-3524] Node type selection for reference constraint is not optimal
  [JCR-3528] Node type selection for CanAddChildNodeCallWithNodeTypeTest#...
  [JCR-3531] Borrow all available RepositoryHelpers
  [JCR-3535] Davex remoting should support absolute path hrefs
  [JCR-3537] Large number of SQL queries when adding nodes with version history
  [JCR-3549] URIResolverImpl needs to handle absolute paths in addition ...
  [JCR-3553] improve error logging for unexpected path formats
  [JCR-3554] RepositoryService.getReferences needs to deal with absolute ...
  [JCR-3559] RepositoryStubExceptions with root causes
  [JCR-3571] Light optimization for CachingNameResolver.getJCRName(Name)
  [JCR-3573] Improve token based login concurrency
  [JCR-3574] Leverage WebDAV compliance class 3 to use absolute paths in ...
  [JCR-3575] use absolute paths in WebDAV request bodies (DAV:href elements)
  [JCR-3577] Allow creation of users with 'null' password
  [JCR-3578] use absolute paths in DeltaV request bodies, and resolve hrefs ...
  [JCR-3580] JcrPrivilegeReport needs to deal with both absolute paths and ...
  [JCR-3583] UPDATE method needs to deal with both absolute paths and ...
  [JCR-3587] RepositoryImpl should expose the collection of ..

Bug fixes

  [JCR-3276] JCA Adpater not handling transaction suspension correctly
  [JCR-3382] ItemManager.getNode does not do a permission check when the ...
  [JCR-3465] JcrUtils.getOrCreateByPath() creates a whole subtree instead ...
  [JCR-3512] DelayedDelete in MultiDatastore does not work correctly
  [JCR-3518] Build fails on Mac OS + JDK 7
  [JCR-3521] IllegalArgumentException thrown on a box running java7 with ...
  [JCR-3523] Workspace.copy changes WeakReferences to References
  [JCR-3539] NotQuery#advance (and for older versions skipTo) violates ...
  [JCR-3540] locator for RootCollection generates a broken href when using ...
  [JCR-3543] TCK does not allow a property to be re-bound to a different ...
  [JCR-3545] unknown REPORT should cause status code 409/DAV:supported-report
  [JCR-3551] DavEx cannot handle Double.NaN properties
  [JCR-3552] Principal associated with Group does not update members
  [JCR-3556] IndexingConfigurationImpl.getAggregateRules() should return ...
  [JCR-3562] Adding a child node named {foo fails but bar} works
  [JCR-3570] Make immediately Repository start configureable in ...
  [JCR-3576] handle absolute paths in observation response bodies
  [JCR-3581] Incorrect bitwise arithmetic in BitsetENTCacheImpl.BitsetKey...

In addition to the above-mentioned changes, this release contains
all the changes included up to the Apache Jackrabbit 2.6.0 release.

For more detailed information about all the changes in this and other
Jackrabbit releases, please see the Jackrabbit issue tracker at

Release Contents

This release consists of a single source archive packaged as a zip file.
The archive can be unpacked with the jar tool from your JDK installation.
See the README.txt file for instructions on how to build this release.

The source archive is accompanied by SHA1 and MD5 checksums and a PGP
signature that you can use to verify the authenticity of your download.
The public key used for the PGP signature can be found at

About Apache Jackrabbit

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

For more information, visit

About The Apache Software Foundation

Established in 1999, The Apache Software Foundation provides organizational,
legal, and financial support for more than 100 freely-available,
collaboratively-developed Open Source projects. The pragmatic Apache License
enables individual and commercial users to easily deploy Apache software;
the Foundation's intellectual property framework limits the legal exposure
of its 2,500+ contributors.

For more information, visit


Apache Jackrabbit, Jackrabbit, Apache, the Apache feather logo, and the Apache
Jackrabbit project logo are trademarks of The Apache Software Foundation.
Something went wrong with that request. Please try again.