You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2006/11/29 02:29:19 UTC

svn commit: r480320 - in /jackrabbit/branches/1.1: RELEASE-NOTES.txt jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java

Author: jukka
Date: Tue Nov 28 17:29:17 2006
New Revision: 480320

URL: http://svn.apache.org/viewvc?view=rev&rev=480320
Log:
branches/1.1: Merged revision 454735 (JCR-586)

Modified:
    jackrabbit/branches/1.1/RELEASE-NOTES.txt
    jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java

Modified: jackrabbit/branches/1.1/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.1/RELEASE-NOTES.txt?view=diff&rev=480320&r1=480319&r2=480320
==============================================================================
--- jackrabbit/branches/1.1/RELEASE-NOTES.txt (original)
+++ jackrabbit/branches/1.1/RELEASE-NOTES.txt Tue Nov 28 17:29:17 2006
@@ -1,4 +1,4 @@
-Release Notes -- Apache Jackrabbit -- Version 1.1
+Release Notes -- Apache Jackrabbit -- Version 1.1.1
 
 
 Introduction
@@ -10,10 +10,9 @@
 (JSR-170). The project also produces a various tools and components
 related to the JCR API.
 
-Apache Jackrabbit 1.1 is an incremental release that fixes
-a number of issues and introduces some new features. The most
-notable changes in this release include the  See the
-included change history for details.
+Apache Jackrabbit 1.1.1 is  a patch release that fixes a number of
+issues, see the include change history for details. No new features
+or configuration changes have been introduced since the 1.1 release.
 
 See the Apache Jackrabbit website at http://jackrabbit.apache.org/
 for more information.
@@ -26,10 +25,10 @@
 content repository implementation and the related general-purpose
 JCR utilities:
 
-     jackrabbit-core-1.1-src.jar
+     jackrabbit-core-1.1.1-src.jar
 
-     jackrabbit-core-1.1.jar
-     jackrabbit-jcr-commons-1.1.jar
+     jackrabbit-core-1.1.1.jar
+     jackrabbit-jcr-commons-1.1.1.jar
 
 This release contains also additional components that offer extra
 functionality for use with either Apache Jackrabbit core or any
@@ -38,28 +37,28 @@
 
  * RMI network layer for the JCR API.
 
-     jackrabbit-jcr-rmi-1.1-src.jar
-     jackrabbit-jcr-rmi-1.1.jar
+     jackrabbit-jcr-rmi-1.1.1-src.jar
+     jackrabbit-jcr-rmi-1.1.1.jar
 
  * Deployable Jackrabbit installation with WebDAV support for JCR.
 
-     jackrabbit-jcr-server-1.1-src.jar
+     jackrabbit-jcr-server-1.1.1-src.jar
 
-     jackrabbit-jcr-webdav-1.1.jar
-     jackrabbit-jcr-client-1.1.jar
-     jackrabbit-jcr-server-1.1.jar
-     jackrabbit-server-1.1.war
+     jackrabbit-jcr-webdav-1.1.1.jar
+     jackrabbit-jcr-client-1.1.1.jar
+     jackrabbit-jcr-server-1.1.1.jar
+     jackrabbit-server-1.1.1.war
 
  * J2EE Connector Architecture (JCA) resource adapter for Jackrabbit.
 
-     jackrabbit-jca-1.1-src.jar
-     jackrabbit-jca-1.1.rar
+     jackrabbit-jca-1.1.1-src.jar
+     jackrabbit-jca-1.1.1.rar
 
  * Text indexing filters for Jackrabbit. Includes example filters
    for Adobe PDF and MS Excel, PowerPoint, and Word.
 
-     jackrabbit-index-filters-1.1-src.jar
-     jackrabbit-index-filters-1.1.jar
+     jackrabbit-index-filters-1.1.1-src.jar
+     jackrabbit-index-filters-1.1.1.jar
 
 All components are released as a source jar file and one or more compiled
 binary files. All files contain a README.txt file with more information.
@@ -75,159 +74,68 @@
 Upgrading from 1.0
 ------------------
 
-Apache Jackrabbit 1.1 is fully compatible with the 1.0 release. An
+Apache Jackrabbit 1.1.1 is fully compatible with the 1.0 release. An
 Apache Jackrabbit 1.0 installation can be upgraded by replacing
 the relevant jar files with the new versions. No changes to repository
 contents are needed.
 
 
-Known Issues
-------------
+Change History
+--------------
 
-The known issues in this release are listed below:
+Changes since 1.1:
 
-  [JCR-586] Removing a mixin that adds a same-name-sibling child node ...
-  [JCR-578] QueryParser.parse(...) parses wrong the ".[@a=3 and ...
-  [JCR-575] unicode escapes in files generated by JJTree
-  [JCR-574] MsExcelTextFilter throws Exception. Repository is not startable
-  [JCR-568] incorrect jcr:uuid on frozen subnode
-  [JCR-566] Versioning with restore and transactions
-  [JCR-564] Remove geronimo JTA as a runtime dependency
-  [JCR-563] encode/decode
-  [JCR-562] 'OR' in XPath query badly interpreted
-  [JCR-550] ObservationManagerFactory) - OutOfMemoryError when re-indexing ...
-  [JCR-546] Deadlock during checkin
-  [JCR-544] JCR-Server: Workspace.restore not mapped correctly
-  [JCR-538] failing Node.checkin() or Node.checkout() might leave ...
-  [JCR-537] Failure to remove a versionable node
-  [JCR-529] New versions added after a restore have bad version name
-  [JCR-522] XPath parser too tolerant
-  [JCR-517] Reserved status of namespace jcr not enforced.
-  [JCR-449] inconsistency in internal version items during commits
-  [JCR-441] Session logout doesn't release locks acquired using addLockToken
-  [JCR-435] Node.update() does not work correct for SNS
-  [JCR-406] If header evaluation compliance provlems
-  [JCR-392] Accessing element by number does not work
-  [JCR-385] ClassCastExeption when executing union queries
-  [JCR-320] BinaryValue equals fails for two objects with two different ...
-  [JCR-43]  Restore on node creates same-name-sibling of OPV-Version child ...
-  [JCR-18]  Multithreading issue with versioning
+    * [JCR-67] - Node.canAddMixin(String)
+    * [JCR-550] - OutOfMemoryError when re-indexing the repository
+    * [JCR-562] - 'OR' in XPath query badly interpreted
+    * [JCR-563] - encode/decode
+    * [JCR-574] - MsExcelTextFilter throws Exception. Repository is not
+    * [JCR-586] - Removing a mixin that adds a same-name-sibling child node
+    * [JCR-587] - XMLTextFilter does not extract text elements
+    * [JCR-594] - It's not possible to register event listeners that filters
+    * [JCR-598] - DateValue.equals() relies on Calendar.equals()
+    * [JCR-600] - Repository does not release all resources on shutdown
+    * [JCR-602] - importXML still depends on Xerces
+    * [JCR-603] - OracleFileSystem can't handle empty files
+    * [JCR-605] - Error when registering node types on virgin repository
+    * [JCR-606] - RMI-DateValue does not support full ISO8601 format
+    * [JCR-620] - Workspace.getImportHandler() doesn't handle namespace
+    * [JCR-624] - OutOfMemoryError When repeat login and the logout many times
+    * [JCR-628] - OutOfMemory problem: HandleMonitor does not release closed
+    * [JCR-629] - CompactNodeTypeDefWriter does not escaped names properly
+    * [JCR-636] - Local AuthContext authenticates if LoginModule should be
+    * [JCR-637] - Multiple namespace definitions in CND prevent definition of
 
 See the issue tracker at http://issues.apache.org/jira/browse/JCR for
-more details.
+issue details and the full change histories of all Apache Jackrabbit versions.
 
-Change History
---------------
 
-Changes since 1.0.1:
+Known Issues
+------------
+
+The known issues in this release are listed below:
 
-  New features
+    * [JCR-586] Removing a mixin that adds a same-name-sibling child node
+    * [JCR-578] QueryParser.parse(...) parses wrong the ".[@a=3 and
+    * [JCR-575] unicode escapes in files generated by JJTree
+    * [JCR-574] MsExcelTextFilter throws Exception. Repository is not
+    * [JCR-568] incorrect jcr:uuid on frozen subnode
+    * [JCR-566] Versioning with restore and transactions
+    * [JCR-564] Remove geronimo JTA as a runtime dependency
+    * [JCR-546] Deadlock during checkin
+    * [JCR-544] JCR-Server: Workspace.restore not mapped correctly
+    * [JCR-538] failing Node.checkin() or Node.checkout() might leave
+    * [JCR-537] Failure to remove a versionable node
+    * [JCR-529] New versions added after a restore have bad version name
+    * [JCR-522] XPath parser too tolerant
+    * [JCR-517] Reserved status of namespace jcr not enforced.
+    * [JCR-449] inconsistency in internal version items during commits
+    * [JCR-441] Session logout doesn't release locks acquired using
+    * [JCR-435] Node.update() does not work correct for SNS
+    * [JCR-406] If header evaluation compliance provlems
+    * [JCR-392] Accessing element by number does not work
+    * [JCR-385] ClassCastExeption when executing union queries
+    * [JCR-320] BinaryValue equals fails for two objects with two different
+    * [JCR-43]  Restore on node creates same-name-sibling of OPV-Version
+    * [JCR-18]  Multithreading issue with versioning
 
-  [JCR-561] Add support to provide custom classloader for class ...
-  [JCR-521] Add a method public boolean hasNodeType(String name) in ...
-  [JCR-409] Safe namespace registration
-  [JCR-313] Allow to configure DB persistence managers through JDNI
-  [JCR-248] create configuration on InputStream
-
-  Improvements
-
-  [JCR-565] Refactor ObservationManagerFactory
-  [JCR-555] ConsistencyCheck uses too much memory
-  [JCR-554] Index creates many folders when re-indexing
-  [JCR-552] Move listeners from item state to item state managers
-  [JCR-523] QueryManagerImpl hardwires supported query languages
-  [JCR-520] Contributed ClassLoader project still uses commons-logging for ...
-  [JCR-516] remove dependencies of XPathQueryBuilder on core Jackrabbit code
-  [JCR-476] Remove recently added getJCRPath()/getQPath() from ...
-  [JCR-474] Introduce 'SecurityConfig' for better extensability.
-  [JCR-472] Wrap IllegalArgumentException from UUID when bad ID passed to ...
-  [JCR-471] Create resource sensitive cache for item states
-  [JCR-470] XMLIndexFilter should index the attributes
-  [JCR-467] CompactNodeTypeReader fails to explain why valid JCR names ...
-  [JCR-462] Improve lifecycle management of JCA connector
-  [JCR-460] Add RAR META-INF/ra.xml descriptor to be used with JCA1.5
-  [JCR-459] Add JMX support to register a JCR RMI Server into Jboss
-  [JCR-451] PropertyTypeRegistry should also yield if property is multi-valued
-  [JCR-446] Prevent logins during repository shutdown
-  [JCR-438] Improve handling for missing text filter dependency
-  [JCR-433] NodeTypeRegistry could auto-subtype from nt:base
-  [JCR-410] JCR-Server Code depends on Log4J directly
-  [JCR-407] read IOHandlers from the config.xml
-  [JCR-403] add shutdown() or logoutAll() method to TransientRepository
-  [JCR-367] Remove dependency on Xerces
-  [JCR-366] Allow o.a.j.jca.JCARepositoryManager to load repository ...
-  [JCR-355] Extract JDBC Connection Init
-  [JCR-349] New node type namespaces should be automatically registered
-
-  Bug fixes
-
-  [JCR-572] Referenced derby library behaves buggy on FreeBSD
-  [JCR-539] Concurrent Repository.login() throws IllegalStateException
-  [JCR-533] failing Node.lock() might leave inconsistent transient state
-  [JCR-532] Incorrect iterator position in JCR-RMI when skipping large ...
-  [JCR-519] Missing support for some "general" relations in QueryTreeDump ...
-  [JCR-494] Typo in message logged upon startup when repository is already ...
-  [JCR-487] the jcr:frozenUuid property is of type REFERENCE instead of STRING
-  [JCR-483] Lock tokens reains in session after unlock
-  [JCR-482] DocViewSaxEventGenerator may generate non-NS-wellformed XML
-  [JCR-475] CompactNodeTypeDefReader fails parsing 'long' value constraints
-  [JCR-469] Problem with child order after restoring of parent
-  [JCR-468] Item.isSame() may return true for 2 nodes from different ...
-  [JCR-463] Uncommitted changes or connection leak with Container Managed ...
-  [JCR-461] ManagedConnection#cleanup doesn't refresh the session
-  [JCR-458] session.move() throws ItemExistsException despite same name ...
-  [JCR-457] Path returned by FileSystemBLOBStore.createId() is not absolute
-  [JCR-455] InternalXAResource.rollback() can be called twice and without ...
-  [JCR-454] Query with document order fails when result set size > caching ...
-  [JCR-453] add/remove dispatchers from DelegatingObservationDispatcher ...
-  [JCR-452] Workspace.clone throws ItemNotFoundException on a ...
-  [JCR-450] Memory leak in UUIDDocId
-  [JCR-448] Moving a node while index is merged leads to inconsistent index
-  [JCR-445] repository is locked by WorkspaceJanitor when another ...
-  [JCR-436] InvalidQueryException thrown for a SQL query using WHERE ...
-  [JCR-427] thread local variable commitLog not dispose
-  [JCR-414] jcr:successors property not persisted correctly within a ...
-  [JCR-413] JCA will not compile with J2EE1.3 classes
-  [JCR-412] JCA Concurrent Modification Exception when ...
-  [JCR-384] Changes of JCR-313 introduced db-transaction problem
-  [JCR-331] RepositoryConfig instance can not be reused once it has been ...
-  [JCR-299] errors in text filters can cause indexing to fail without ...
-  [JCR-272] Removal of versions throws javax.jcr.ReferentialIntegrityException
-
-Changes since 1.0:
-
-  [JCR-443] Deadlock when concurrently committing and reading versioning ...
-  [JCR-439] Workspace.clone() fails the second time, if cloning referenceables
-  [JCR-437] Restoring a node which has OPV=Version children fails if they ...
-  [JCR-434] ArrayIndexOutOfBoundsException in NodeTypeDefDiff
-  [JCR-430] Memory leak when using transactions
-  [JCR-429] Session scoped lock not always removed on Session.logout()
-  [JCR-428] BLOBFileValue() might be discarded to early
-  [JCR-426] WorkspaceInfo.dispose() does not deregister from obs dispatcher
-  [JCR-424] PropertyState binary type desirialsation only returns half ...
-  [JCR-423] Node.restore() fails for existing non-versioned OPV=Version ...
-  [JCR-422] charset in Content-Type header shouldn't be in quotes
-  [JCR-421] PROPPATCH does not send multistatus after revision 397835
-  [JCR-420] NullPointerException when deleting a property of type REFERENCE
-  [JCR-411] Binding repository to a nameserver with RegistryHelper causes ...
-  [JCR-408] RowIterator view of result for query '//*' only returns ...
-  [JCR-405] PROPPATCH doesn't respect document order
-  [JCR-400] PROPPATCH error marshalling when the resource can't be ...
-  [JCR-396] RMI published Repository using the jcr-rmi library gets lost ...
-  [JCR-395] Using transactions leads to memory leak
-  [JCR-393] WebDAV Library: VersionControlledResource constant lists ...
-  [JCR-391] WebDAV method invocation trying to create a new resource ...
-  [JCR-386] Query dump failed with deep query tree
-  [JCR-383] Default namespaces in JackrabbitNodeTypeManager.registerNodetypes
-  [JCR-382] Setting WebDAV property without value causes NPE in ...
-  [JCR-381] Repository does not start if text filter dependencies are missing
-  [JCR-374] Missing 'node removed' event when removing a version
-  [JCR-371] ItemStateException on concurrently committing transactions of ...
-  [JCR-369] IllegalNameException when importing document view with two mixins
-  [JCR-362] restore sometime throws error about missing tmp files
-  [JCR-336] Concurrent locking operations fail
-  [JCR-335] Deadlock caused by versioning operations within transaction
-  [JCR-285] Line-separator differences cause PredefinedNodeTypeTest to ...
-  [JCR-264] TextFilters get called three times within checkin() method
-  [JCR-140] Versioning might no be thread safe
-  [JCR-50]  Persistence data of versioning not cleaned up correctly

Modified: jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java?view=diff&rev=480320&r1=480319&r2=480320
==============================================================================
--- jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (original)
+++ jackrabbit/branches/1.1/jackrabbit/src/main/java/org/apache/jackrabbit/core/NodeImpl.java Tue Nov 28 17:29:17 2006
@@ -1207,8 +1207,9 @@
         }
         // use temp array to avoid ConcurrentModificationException
         ArrayList list = new ArrayList(thisState.getChildNodeEntries());
-        for (Iterator iter = list.iterator(); iter.hasNext();) {
-            NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) iter.next();
+        // start from tail to avoid problems with same-name siblings
+        for (int i = list.size() - 1; i >= 0; i--) {
+            NodeState.ChildNodeEntry entry = (NodeState.ChildNodeEntry) list.get(i);
             NodeImpl node = (NodeImpl) itemMgr.getItem(entry.getId());
             // check if node has been defined by mixin type (or one of its supertypes)
             NodeTypeImpl declaringNT = (NodeTypeImpl) node.getDefinition().getDeclaringNodeType();