You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2012/09/24 04:17:20 UTC

svn commit: r1389184 [1/13] - in /directory/apacheds/trunk: core-annotations/src/main/java/org/apache/directory/server/core/factory/ core-api/src/main/java/org/apache/directory/server/core/api/ core-api/src/main/java/org/apache/directory/server/core/ap...

Author: elecharny
Date: Mon Sep 24 02:17:13 2012
New Revision: 1389184

URL: http://svn.apache.org/viewvc?rev=1389184&view=rev
Log:
Merged mvbt branch into trunk

Added:
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/ParentIdAndRdnSerializer.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/UuidSerializer.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/KeyTupleArrayCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/PartitionSearchResult.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/AllEntriesCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/AndCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/ApproximateCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/ChildrenCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/DescendantCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/EqualityCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/GreaterEqCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/LessEqCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/NotCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/OrCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/PresenceCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/SubstringCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/AndEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/ApproximateEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/EqualityEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/GreaterEqEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/LeafEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/LessEqEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/NotEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/OneLevelScopeEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/OrEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/PassThroughEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/PresenceEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/SubstringEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/SubtreeScopeEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/IndexEntryTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/AbstractCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/EqualityTest.java
Removed:
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyTupleArrayCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/ValueArrayCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/AbstractIndexEntry.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ForwardIndexEntry.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/IndexCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ReverseIndexEntry.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/AllEntriesCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/AndCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/AndEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ChildrenCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DescendantCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/LeafEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/NotCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/NotEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeEvaluator.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/ForwardIndexEntryTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/ReverseIndexEntryTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeTest.java
Modified:
    directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/AvlPartitionFactory.java
    directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/DSAnnotationProcessor.java
    directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/JdbmPartitionFactory.java
    directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/LdifPartitionFactory.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/EntryToResponseCursor.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/BaseEntryFilteringCursor.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/CursorList.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/AbstractPartition.java
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/Partition.java
    directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/api/MockCursor.java
    directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayMarshaller.java
    directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayTreeCursor.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/SearchAuthorizationIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchPerfIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java
    directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/DefaultDnFactory.java
    directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/DefaultOperationManager.java
    directory/apacheds/trunk/interceptors/admin/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java
    directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java
    directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java
    directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/GroupCache.java
    directory/apacheds/trunk/interceptors/normalization/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsContainerCursor.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndex.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTable.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmRdnIndex.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/NoDupsCursor.java
    directory/apacheds/trunk/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/StringSerializer.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndexTest.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmRdnIndexTest.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyBTreeCursorTest.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyCursorTest.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyTupleArrayCursorTest.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/StringSerializerTest.java
    directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/Des3CbcSha1KdEncryption.java
    directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/components/TransitedEncoding.java
    directory/apacheds/trunk/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/KerberosTestUtils.java
    directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/LdapConnectionTest.java
    directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/AbstractLdifPartition.java
    directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java
    directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartition.java
    directory/apacheds/trunk/ldif-partition/src/main/resources/ads-2.ldif
    directory/apacheds/trunk/ldif-partition/src/main/resources/sample-config.ldif
    directory/apacheds/trunk/ldif-partition/src/test/java/org/apache/directory/server/core/partition/ldif/SingleFileLdifPartitionTest.java
    directory/apacheds/trunk/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/authentication/AuthenticationService.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/AbstractSaslServer.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/controls/PagedSearchContext.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StartTlsHandler.java
    directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/ReplicaEventLog.java
    directory/apacheds/trunk/protocol-ldap/src/test/java/org/apache/directory/server/ldap/JournalTest.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/IndexTest.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/bind/BindIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/ldapsdk/AddIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/ldapsdk/BindIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/ldapsdk/CompareIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/ldapsdk/DeleteIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/ldapsdk/ModifyDnReferralIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/ldapsdk/ModifyReferralIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchPerfIT.java
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/replication/ClientServerReplicationIT.java
    directory/apacheds/trunk/server-integ/src/test/resources/log4j.properties
    directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/builder/ServiceBuilder.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/avl/AvlPartition.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/AbstractBTreePartition.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/EntryCursorAdaptor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/IndexAssertionEnumeration.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/IndexCursorAdaptor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/IndexEnumeration.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/AbstractIndexCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/EmptyIndexCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/Index.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/IndexEntry.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/MasterTable.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ParentIdAndRdn.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ParentIdAndRdnComparator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/SingletonIndexCursor.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/Store.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/impl/avl/AvlIndex.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/impl/avl/AvlMasterTable.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/impl/avl/AvlRdnIndex.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/Evaluator.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/SearchEngine.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultOptimizer.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultSearchEngine.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EvaluatorBuilder.java
    directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ScanCountComparator.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/AbstractIndexCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/EmptyIndexCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/ParentIdAndRdnTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/PartitionTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/SingletonIndexCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/StoreUtils.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/impl/avl/AvlPartitionTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/impl/avl/AvlRdnIndexTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/AndCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/GreaterEqTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/LessEqTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/NestedFilterTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/NotCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/OrCursorTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/PresenceTest.java
    directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/SubstringTest.java
    directory/apacheds/trunk/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/AttributesTableModel.java
    directory/apacheds/trunk/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/EntryNode.java
    directory/apacheds/trunk/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/IndexDialog.java
    directory/apacheds/trunk/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/PartitionFrame.java
    directory/apacheds/trunk/xdbm-tools/src/main/java/org/apache/directory/server/xdbm/tools/IndexDialog.java
    directory/apacheds/trunk/xdbm-tools/src/main/java/org/apache/directory/server/xdbm/tools/IndexUtils.java

Modified: directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/AvlPartitionFactory.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/AvlPartitionFactory.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/AvlPartitionFactory.java (original)
+++ directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/AvlPartitionFactory.java Mon Sep 24 02:17:13 2012
@@ -67,9 +67,9 @@ public class AvlPartitionFactory impleme
         }
 
         AvlPartition avlPartition = ( AvlPartition ) partition;
-        Set<Index<?, Entry, Long>> indexedAttributes = avlPartition.getIndexedAttributes();
+        Set<Index<?, ?, String>> indexedAttributes = avlPartition.getIndexedAttributes();
 
-        AvlIndex<Object, Entry> index = new AvlIndex<Object, Entry>( attributeId );
+        AvlIndex<Object, Entry> index = new AvlIndex<Object, Entry>( attributeId, false );
         //index.setCacheSize( cacheSize );
 
         indexedAttributes.add( index );

Modified: directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/DSAnnotationProcessor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/DSAnnotationProcessor.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/DSAnnotationProcessor.java (original)
+++ directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/DSAnnotationProcessor.java Mon Sep 24 02:17:13 2012
@@ -171,9 +171,9 @@ public class DSAnnotationProcessor
                 partition.setId( createPartition.name() );
                 partition.setSuffixDn( new Dn( service.getSchemaManager(), createPartition.suffix() ) );
 
-                if ( partition instanceof AbstractBTreePartition<?> )
+                if ( partition instanceof AbstractBTreePartition )
                 {
-                    AbstractBTreePartition<?> btreePartition = ( AbstractBTreePartition<?> ) partition;
+                    AbstractBTreePartition btreePartition = ( AbstractBTreePartition ) partition;
                     btreePartition.setCacheSize( createPartition.cacheSize() );
                     btreePartition.setPartitionPath( new File( service
                         .getInstanceLayout().getPartitionsDirectory(),
@@ -187,8 +187,7 @@ public class DSAnnotationProcessor
                         // The annotation does not specify a specific index
                         // type.
                         // We use the generic index implementation.
-                        JdbmIndex index = new JdbmIndex();
-                        index.setAttributeId( createIndex.attribute() );
+                        JdbmIndex index = new JdbmIndex( createIndex.attribute(), false );
 
                         btreePartition.addIndexedAttributes( index );
                     }

Modified: directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/JdbmPartitionFactory.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/JdbmPartitionFactory.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/JdbmPartitionFactory.java (original)
+++ directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/JdbmPartitionFactory.java Mon Sep 24 02:17:13 2012
@@ -67,9 +67,9 @@ public class JdbmPartitionFactory implem
         }
 
         JdbmPartition jdbmPartition = ( JdbmPartition ) partition;
-        Set<Index<?, Entry, Long>> indexedAttributes = jdbmPartition.getIndexedAttributes();
+        Set<Index<?, ?, String>> indexedAttributes = jdbmPartition.getIndexedAttributes();
 
-        JdbmIndex<Object, Entry> index = new JdbmIndex<Object, Entry>( attributeId );
+        JdbmIndex<Object, Entry> index = new JdbmIndex<Object, Entry>( attributeId, false );
         index.setCacheSize( cacheSize );
 
         indexedAttributes.add( index );

Modified: directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/LdifPartitionFactory.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/LdifPartitionFactory.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/LdifPartitionFactory.java (original)
+++ directory/apacheds/trunk/core-annotations/src/main/java/org/apache/directory/server/core/factory/LdifPartitionFactory.java Mon Sep 24 02:17:13 2012
@@ -67,9 +67,9 @@ public class LdifPartitionFactory implem
         }
 
         LdifPartition ldifPartition = ( LdifPartition ) partition;
-        Set<Index<?, Entry, Long>> indexedAttributes = ldifPartition.getIndexedAttributes();
+        Set<Index<?, ?, String>> indexedAttributes = ldifPartition.getIndexedAttributes();
 
-        AvlIndex<Object, Entry> index = new AvlIndex<Object, Entry>( attributeId );
+        AvlIndex<Object, Entry> index = new AvlIndex<Object, Entry>( attributeId, false );
         //index.setCacheSize( cacheSize );
 
         indexedAttributes.add( index );

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/EntryToResponseCursor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/EntryToResponseCursor.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/EntryToResponseCursor.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/EntryToResponseCursor.java Mon Sep 24 02:17:13 2012
@@ -23,8 +23,7 @@ package org.apache.directory.server.core
 
 import java.util.Iterator;
 
-import org.apache.directory.server.core.api.entry.ClonedServerEntry;
-import org.apache.directory.shared.i18n.I18n;
+import org.apache.directory.shared.ldap.model.cursor.AbstractCursor;
 import org.apache.directory.shared.ldap.model.cursor.ClosureMonitor;
 import org.apache.directory.shared.ldap.model.cursor.Cursor;
 import org.apache.directory.shared.ldap.model.cursor.SearchCursor;
@@ -48,7 +47,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class EntryToResponseCursor implements SearchCursor
+public class EntryToResponseCursor extends AbstractCursor<Response> implements SearchCursor
 {
     /** A dedicated log for cursors */
     private static final Logger LOG_CURSOR = LoggerFactory.getLogger( "CURSOR" );
@@ -130,7 +129,7 @@ public class EntryToResponseCursor imple
 
     public Response get() throws Exception
     {
-        Entry entry = ( ClonedServerEntry ) wrapped.get();
+        Entry entry = wrapped.get();
         SearchResultEntry se = new SearchResultEntryImpl( messageId );
         se.setEntry( entry );
 
@@ -190,46 +189,6 @@ public class EntryToResponseCursor imple
     /**
      * {@inheritDoc}
      */
-    public boolean isAfterLast() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isAfterLast()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isBeforeFirst() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isBeforeFirst()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isFirst() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isFirst()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isLast() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isLast()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
     public boolean isDone()
     {
         return done;

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java Mon Sep 24 02:17:13 2012
@@ -26,6 +26,7 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
+
 import org.apache.directory.ldap.client.api.AbstractLdapConnection;
 import org.apache.directory.ldap.client.api.EntryCursorImpl;
 import org.apache.directory.server.core.api.filtering.EntryFilteringCursor;
@@ -382,7 +383,14 @@ public class LdapCoreSessionConnection e
 
         DeleteResponse deleteResponse = delete( deleteRequest );
 
-        processResponse( deleteResponse );
+        try
+        {
+            processResponse( deleteResponse );
+        }
+        catch ( LdapException e )
+        {
+            throw e;
+        }
     }
 
 

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/BaseEntryFilteringCursor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/BaseEntryFilteringCursor.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/BaseEntryFilteringCursor.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/BaseEntryFilteringCursor.java Mon Sep 24 02:17:13 2012
@@ -22,16 +22,14 @@ package org.apache.directory.server.core
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.directory.server.core.api.entry.ClonedServerEntry;
 import org.apache.directory.server.core.api.entry.ClonedServerEntrySearch;
 import org.apache.directory.server.core.api.interceptor.context.SearchingOperationContext;
-import org.apache.directory.shared.i18n.I18n;
+import org.apache.directory.shared.ldap.model.cursor.AbstractCursor;
 import org.apache.directory.shared.ldap.model.cursor.ClosureMonitor;
 import org.apache.directory.shared.ldap.model.cursor.Cursor;
-import org.apache.directory.shared.ldap.model.cursor.CursorIterator;
 import org.apache.directory.shared.ldap.model.cursor.InvalidCursorPositionException;
 import org.apache.directory.shared.ldap.model.entry.Attribute;
 import org.apache.directory.shared.ldap.model.entry.Entry;
@@ -51,7 +49,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class BaseEntryFilteringCursor implements EntryFilteringCursor
+public class BaseEntryFilteringCursor extends AbstractCursor<Entry> implements EntryFilteringCursor
 {
     /** the logger used by this class */
     private static final Logger log = LoggerFactory.getLogger( BaseEntryFilteringCursor.class );
@@ -165,6 +163,7 @@ public class BaseEntryFilteringCursor im
         return filters.add( filter );
     }
 
+
     /* (non-Javadoc)
      * @see org.apache.directory.server.core.filtering.EntryFilteringCursor#removeEntryFilter(org.apache.directory.server.core.filtering.EntryFilter)
      */
@@ -173,6 +172,7 @@ public class BaseEntryFilteringCursor im
         return filters.remove( filter );
     }
 
+
     /**
      * {@inheritDoc}
      */
@@ -288,7 +288,7 @@ public class BaseEntryFilteringCursor im
         }
 
         beforeFirst();
-        
+
         return next();
     }
 
@@ -329,7 +329,7 @@ public class BaseEntryFilteringCursor im
         }
 
         afterLast();
-        
+
         return previous();
     }
 
@@ -474,6 +474,12 @@ public class BaseEntryFilteringCursor im
 
             Entry tempEntry = wrapped.get();
 
+            if ( tempEntry == null )
+            {
+                // no candidate
+                continue;
+            }
+
             if ( tempEntry instanceof ClonedServerEntry )
             {
                 tempResult = tempEntry;
@@ -546,7 +552,14 @@ public class BaseEntryFilteringCursor im
         outer: while ( wrapped.previous() )
         {
             boolean accepted = true;
-            tempResult = new ClonedServerEntrySearch( wrapped.get() );
+            Entry entry = wrapped.get();
+
+            if ( entry == null )
+            {
+                continue;
+            }
+
+            tempResult = new ClonedServerEntrySearch( entry );
 
             /*
              * O P T I M I Z A T I O N
@@ -586,7 +599,7 @@ public class BaseEntryFilteringCursor im
              */
             prefetched = tempResult;
             filterContents( prefetched );
-            
+
             return true;
         }
 
@@ -594,53 +607,4 @@ public class BaseEntryFilteringCursor im
 
         return false;
     }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public Iterator<Entry> iterator()
-    {
-        return new CursorIterator<Entry>( this );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isAfterLast() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isAfterLast()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isBeforeFirst() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isBeforeFirst()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isFirst() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isFirst()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isLast() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isLast()" ) ) );
-    }
 }

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/CursorList.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/CursorList.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/CursorList.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/filtering/CursorList.java Mon Sep 24 02:17:13 2012
@@ -26,6 +26,7 @@ import java.util.List;
 
 import org.apache.directory.server.core.api.interceptor.context.SearchingOperationContext;
 import org.apache.directory.shared.i18n.I18n;
+import org.apache.directory.shared.ldap.model.cursor.AbstractCursor;
 import org.apache.directory.shared.ldap.model.cursor.ClosureMonitor;
 import org.apache.directory.shared.ldap.model.cursor.Cursor;
 import org.apache.directory.shared.ldap.model.cursor.InvalidCursorPositionException;
@@ -40,11 +41,11 @@ import org.slf4j.LoggerFactory;
  * 
  * This class is modeled based on the implementation of {@link org.apache.directory.shared.ldap.model.cursor.ListCursor}
  * 
- * WARN this is only used internally 
+ * WARN this is only used internally !
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class CursorList implements EntryFilteringCursor
+public class CursorList extends AbstractCursor<Entry> implements EntryFilteringCursor
 {
     /** A dedicated log for cursors */
     private static final Logger LOG_CURSOR = LoggerFactory.getLogger( "CURSOR" );
@@ -58,8 +59,14 @@ public class CursorList implements Entry
     /** The ending position for the cursor in the list. It can be < List.size() */
     private final int end;
 
+    /** The number of cursors in the list */
+    private final int listSize;
+
     /** The current position in the list */
-    private int index = -1;
+    private int index;
+
+    /** The current cursor being used */
+    private EntryFilteringCursor currentCursor;
 
     /** the operation context */
     private SearchingOperationContext searchContext;
@@ -67,6 +74,7 @@ public class CursorList implements Entry
     /** flag to detect the closed cursor */
     private boolean closed;
 
+    /** The logger for this class */
     private static final Logger LOG = LoggerFactory.getLogger( CursorList.class );
 
 
@@ -85,7 +93,7 @@ public class CursorList implements Entry
     public CursorList( int start, List<EntryFilteringCursor> list, int end, SearchingOperationContext searchContext )
     {
         LOG_CURSOR.debug( "Creating CursorList {}", this );
-        
+
         if ( list != null )
         {
             this.list = list;
@@ -95,19 +103,21 @@ public class CursorList implements Entry
             this.list = Collections.emptyList();
         }
 
-        if ( ( start < 0 ) || ( start > this.list.size() ) )
+        listSize = list.size();
+
+        if ( ( start < 0 ) || ( start > listSize ) )
         {
             throw new IllegalArgumentException( I18n.err( I18n.ERR_02005_START_INDEX_OUT_OF_RANGE, start ) );
         }
 
-        if ( ( end < 0 ) || ( end > this.list.size() ) )
+        if ( ( end < 0 ) || ( end > listSize ) )
         {
             throw new IllegalArgumentException( I18n.err( I18n.ERR_02006_END_INDEX_OUT_OF_RANGE, end ) );
         }
 
         // check list is not empty list since the empty list is the only situation
         // where we allow for start to equal the end: in other cases it makes no sense
-        if ( ( this.list.size() > 0 ) && ( start >= end ) )
+        if ( ( listSize > 0 ) && ( start >= end ) )
         {
             throw new IllegalArgumentException( I18n.err( I18n.ERR_02007_START_INDEX_ABOVE_END_INDEX, start, end ) );
         }
@@ -115,6 +125,8 @@ public class CursorList implements Entry
         this.start = start;
         this.end = end;
         this.searchContext = searchContext;
+        index = start;
+        currentCursor = list.get( index );
     }
 
 
@@ -170,7 +182,8 @@ public class CursorList implements Entry
     public void beforeFirst() throws Exception
     {
         index = 0;
-        list.get( index ).beforeFirst();
+        currentCursor = list.get( index );
+        currentCursor.beforeFirst();
     }
 
 
@@ -180,7 +193,8 @@ public class CursorList implements Entry
     public void afterLast() throws Exception
     {
         index = end - 1;
-        list.get( index ).afterLast();
+        currentCursor = list.get( index );
+        currentCursor.afterLast();
     }
 
 
@@ -189,10 +203,10 @@ public class CursorList implements Entry
      */
     public boolean first() throws Exception
     {
-        if ( list.size() > 0 )
+        if ( listSize > 0 )
         {
             index = start;
-            
+
             return list.get( index ).first();
         }
 
@@ -205,10 +219,12 @@ public class CursorList implements Entry
      */
     public boolean last() throws Exception
     {
-        if ( list.size() > 0 )
+        if ( listSize > 0 )
         {
             index = end - 1;
-            return list.get( index ).last();
+            currentCursor = list.get( index );
+
+            return currentCursor.last();
         }
 
         return false;
@@ -220,7 +236,7 @@ public class CursorList implements Entry
      */
     public boolean isFirst() throws Exception
     {
-        return ( list.size() > 0 ) && ( index == start ) && list.get( index ).first();
+        return ( listSize > 0 ) && ( index == start ) && list.get( index ).isFirst();
     }
 
 
@@ -229,7 +245,7 @@ public class CursorList implements Entry
      */
     public boolean isLast() throws Exception
     {
-        return ( list.size() > 0 ) && ( index == end - 1 ) && list.get( index ).last();
+        return ( listSize > 0 ) && ( index == end - 1 ) && list.get( index ).isLast();
     }
 
 
@@ -238,7 +254,7 @@ public class CursorList implements Entry
      */
     public boolean isAfterLast() throws Exception
     {
-        return index == end;
+        return ( index == end );
     }
 
 
@@ -263,25 +279,20 @@ public class CursorList implements Entry
         }
 
         // if the index moved back is still greater than or eq to start then OK
-        if ( index - 1 >= start )
+        if ( index > start )
         {
             if ( index == end )
             {
                 index--;
+                currentCursor = list.get( index );
             }
 
-            if ( !list.get( index ).previous() )
+            if ( !currentCursor.previous() )
             {
                 index--;
-                
-                if ( index != -1 )
-                {
-                    return list.get( index ).previous();
-                }
-                else
-                {
-                    return false;
-                }
+                currentCursor = list.get( index );
+
+                return currentCursor.previous();
             }
             else
             {
@@ -292,10 +303,11 @@ public class CursorList implements Entry
         // if the index currently less than or equal to start we need to park it at -1 and return false
         if ( index <= start )
         {
-            if ( !list.get( index ).previous() )
+            if ( !currentCursor.previous() )
             {
                 index = -1;
-                
+                currentCursor = null;
+
                 return false;
             }
             else
@@ -304,11 +316,6 @@ public class CursorList implements Entry
             }
         }
 
-        if ( list.size() <= 0 )
-        {
-            index = -1;
-        }
-
         return false;
     }
 
@@ -318,52 +325,56 @@ public class CursorList implements Entry
      */
     public boolean next() throws Exception
     {
-        // if parked at -1 we advance to the start index and return true
-        if ( ( list.size() ) > 0 && ( index == -1 ) )
+        if ( listSize > 0 )
         {
-            index = start;
-            return list.get( index ).next();
-        }
+            // if parked at -1 we advance to the start index and return true
+            if ( index == -1 )
+            {
+                index = start;
+                currentCursor = list.get( index );
 
-        // if the index plus one is less than the end then increment and return true
-        if ( ( list.size()  > 0 ) && ( index + 1 < end ) )
-        {
-            if ( !list.get( index ).next() )
+                return currentCursor.next();
+            }
+
+            // if the index plus one is less than the end then increment and return true
+            if ( index < end - 1 )
             {
-                index++;
-                
-                if ( index < end )
+                if ( !currentCursor.next() )
                 {
-                    return list.get( index ).next();
+                    index++;
+
+                    if ( index < end )
+                    {
+                        currentCursor = list.get( index );
+
+                        return currentCursor.next();
+                    }
+                    else
+                    {
+                        return false;
+                    }
                 }
                 else
                 {
-                    return false;
+                    return true;
                 }
             }
-            else
-            {
-                return true;
-            }
-        }
 
-        // if the index plus one is equal to the end then increment and return false
-        if ( ( list.size() > 0 ) && ( index + 1 == end ) )
-        {
-            if ( !list.get( index ).next() )
+            // if the index plus one is equal to the end then increment and return false
+            if ( index == end - 1 )
             {
-                index++;
-                return false;
-            }
-            else
-            {
-                return true;
-            }
-        }
+                if ( !currentCursor.next() )
+                {
+                    index++;
+                    currentCursor = null;
 
-        if ( list.size() <= 0 )
-        {
-            index = end;
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            }
         }
 
         return false;
@@ -375,14 +386,14 @@ public class CursorList implements Entry
      */
     public Entry get() throws Exception
     {
-        if ( index < start || index >= end )
+        if ( ( index < start ) || ( index >= end ) )
         {
             throw new IOException( I18n.err( I18n.ERR_02009_CURSOR_NOT_POSITIONED ) );
         }
 
-        if ( list.get( index ).available() )
+        if ( currentCursor.available() )
         {
-            return list.get( index ).get();
+            return currentCursor.get();
         }
 
         throw new InvalidCursorPositionException();
@@ -428,12 +439,6 @@ public class CursorList implements Entry
     }
 
 
-    public boolean removeEntryFilter( EntryFilter filter )
-    {
-        return false;
-    }
-
-
     public void setAbandoned( boolean abandoned )
     {
         getOperationContext().setAbandoned( abandoned );
@@ -457,17 +462,17 @@ public class CursorList implements Entry
         LOG_CURSOR.debug( "Closing CursorList {}", this );
         closed = true;
 
-        for ( Cursor<?> c : list )
+        for ( EntryFilteringCursor cursor : list )
         {
             try
             {
                 if ( reason != null )
                 {
-                    c.close( reason );
+                    cursor.close( reason );
                 }
                 else
                 {
-                    c.close();
+                    cursor.close();
                 }
             }
             catch ( Exception e )

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/AbstractPartition.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/AbstractPartition.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/AbstractPartition.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/AbstractPartition.java Mon Sep 24 02:17:13 2012
@@ -188,10 +188,7 @@ public abstract class AbstractPartition 
 
         this.suffixDn = suffixDn;
 
-        if ( schemaManager != null )
-        {
-            this.suffixDn.apply( schemaManager );
-        }
+        this.suffixDn.apply( schemaManager );
     }
 
 

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/Partition.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/Partition.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/Partition.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/Partition.java Mon Sep 24 02:17:13 2012
@@ -22,6 +22,7 @@ package org.apache.directory.server.core
 
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.UUID;
 
 import org.apache.directory.server.core.api.entry.ServerSearchResult;
 import org.apache.directory.server.core.api.filtering.EntryFilteringCursor;
@@ -52,6 +53,13 @@ import org.apache.directory.shared.ldap.
  */
 public interface Partition
 {
+    /** root ID common to all partitions */
+    String ROOT_ID = new UUID( 0L, 0L ).toString();
+
+    /** Default id used for context entry if context entry doesn't exists */
+    String DEFAULT_ID = new UUID( 0L, 1L ).toString();
+
+
     // -----------------------------------------------------------------------
     // C O N F I G U R A T I O N   M E T H O D S
     // -----------------------------------------------------------------------

Modified: directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/api/MockCursor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/api/MockCursor.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/api/MockCursor.java (original)
+++ directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/api/MockCursor.java Mon Sep 24 02:17:13 2012
@@ -20,20 +20,17 @@
 package org.apache.directory.server.core.api;
 
 
-import java.util.Iterator;
 import java.util.NoSuchElementException;
 
-import org.apache.directory.shared.i18n.I18n;
+import org.apache.directory.shared.ldap.model.cursor.AbstractCursor;
 import org.apache.directory.shared.ldap.model.cursor.ClosureMonitor;
-import org.apache.directory.shared.ldap.model.cursor.Cursor;
-import org.apache.directory.shared.ldap.model.cursor.CursorIterator;
 import org.apache.directory.shared.ldap.model.entry.DefaultEntry;
 import org.apache.directory.shared.ldap.model.entry.Entry;
 import org.apache.directory.shared.ldap.model.schema.SchemaManager;
 import org.apache.directory.shared.util.exception.NotImplementedException;
 
 
-public class MockCursor implements Cursor<Entry>
+public class MockCursor extends AbstractCursor<Entry>
 {
     final int count;
     int ii;
@@ -150,12 +147,6 @@ public class MockCursor implements Curso
     }
 
 
-    public Iterator<Entry> iterator()
-    {
-        return new CursorIterator<Entry>( this );
-    }
-
-
     public void close( Exception reason ) throws Exception
     {
     }
@@ -170,44 +161,4 @@ public class MockCursor implements Curso
     {
         this.schemaManager = schemaManager;
     }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isAfterLast() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isAfterLast()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isBeforeFirst() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isBeforeFirst()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isFirst() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isFirst()" ) ) );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isLast() throws Exception
-    {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_02014_UNSUPPORTED_OPERATION, getClass().getName()
-            .concat( "." ).concat( "isLast()" ) ) );
-    }
 }

Modified: directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayMarshaller.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayMarshaller.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayMarshaller.java (original)
+++ directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayMarshaller.java Mon Sep 24 02:17:13 2012
@@ -115,6 +115,7 @@ public class ArrayMarshaller<E> implemen
             data = byteStream.toByteArray();
 
             // Try to deserialize, just to see
+            /*
             try
             {
                 deserialize( data );
@@ -124,6 +125,7 @@ public class ArrayMarshaller<E> implemen
                 System.out.println( I18n.err( I18n.ERR_438, Strings.dumpBytes( data ) ) );
                 throw npe;
             }
+            */
 
             out.close();
         }

Modified: directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayTreeCursor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayTreeCursor.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayTreeCursor.java (original)
+++ directory/apacheds/trunk/core-avl/src/main/java/org/apache/directory/server/core/avltree/ArrayTreeCursor.java Mon Sep 24 02:17:13 2012
@@ -318,4 +318,36 @@ public class ArrayTreeCursor<E> extends 
         LOG_CURSOR.debug( "Closing ArrayTreeCursor {}", this );
         super.close( reason );
     }
+
+
+    /**
+     * @see Object#toString()
+     */
+    public String toString( String tabs )
+    {
+        StringBuilder sb = new StringBuilder();
+
+        sb.append( tabs ).append( "ArrayTreeCursor (" );
+
+        if ( available() )
+        {
+            sb.append( "available)" );
+            sb.append( "#<" ).append( current ).append( ":" ).append( array.get( current ) ).append( ">" );
+        }
+        else
+        {
+            sb.append( "absent)" );
+        }
+
+        return sb.toString();
+    }
+
+
+    /**
+     * @see Object#toString()
+     */
+    public String toString()
+    {
+        return toString( "" );
+    }
 }

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java Mon Sep 24 02:17:13 2012
@@ -37,11 +37,11 @@ import org.apache.directory.server.core.
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.server.core.integ.IntegrationUtils;
 import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
-import org.apache.directory.shared.ldap.model.entry.DefaultEntry;
+import org.apache.directory.shared.ldap.model.entry.Attribute;
 import org.apache.directory.shared.ldap.model.entry.DefaultAttribute;
+import org.apache.directory.shared.ldap.model.entry.DefaultEntry;
 import org.apache.directory.shared.ldap.model.entry.DefaultModification;
 import org.apache.directory.shared.ldap.model.entry.Entry;
-import org.apache.directory.shared.ldap.model.entry.Attribute;
 import org.apache.directory.shared.ldap.model.entry.Modification;
 import org.apache.directory.shared.ldap.model.entry.ModificationOperation;
 import org.apache.directory.shared.ldap.model.message.ModifyRequest;
@@ -279,12 +279,27 @@ public class ModifyAuthorizationIT exten
 
         // Gives grantModify, and grantRead perm to all users in the Administrators group for
         // entries and all attribute types and values
-        createAccessControlSubentry( "selfModifyUserPassword", "{ " + "  identificationTag \"addAci\", "
-            + "  precedence 14, " + "  authenticationLevel none, " + "  itemOrUserFirst userFirst: " + "  { "
-            + "    userClasses { thisEntry }, " + "    userPermissions " + "    { " + "      { "
-            + "        protectedItems {entry}, " + "        grantsAndDenials { grantModify, grantBrowse, grantRead } "
-            + "      }, " + "      { " + "        protectedItems {allAttributeValues {userPassword}}, "
-            + "        grantsAndDenials { grantAdd, grantRemove } " + "      } " + "    } " + "  } " + "}" );
+        createAccessControlSubentry(
+            "selfModifyUserPassword",
+            "{ " +
+                "  identificationTag \"addAci\", " +
+                "  precedence 14, " +
+                "  authenticationLevel none, " +
+                "  itemOrUserFirst userFirst: " +
+                "  { " +
+                "    userClasses { thisEntry }, " +
+                "    userPermissions " + "    { " +
+                "      { " +
+                "        protectedItems {entry}, " +
+                "        grantsAndDenials { grantModify, grantBrowse, grantRead } " +
+                "      }, " +
+                "      { " +
+                "        protectedItems {allAttributeValues {userPassword}}, " +
+                "        grantsAndDenials { grantAdd, grantRemove } " +
+                "      } " +
+                "    } " +
+                "  } " +
+                "}" );
 
         // try a modify operation which should succeed with ACI
         assertTrue( checkCanSelfModify( "billyd", "billyd", mods ) );

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/SearchAuthorizationIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/SearchAuthorizationIT.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/SearchAuthorizationIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/authz/SearchAuthorizationIT.java Mon Sep 24 02:17:13 2012
@@ -190,11 +190,12 @@ public class SearchAuthorizationIT exten
         {
             Entry entry = entries.get();
             Dn childRdn = entry.getDn();
+
             recursivelyDelete( childRdn );
         }
 
         entries.close();
-        
+
         reusableAdminCon.delete( rdn );
     }
 
@@ -319,7 +320,7 @@ public class SearchAuthorizationIT exten
             results.put( result.getDn().getName(), result );
             counter++;
         }
-        
+
         cursor.close();
 
         recursivelyDelete( base );
@@ -340,7 +341,7 @@ public class SearchAuthorizationIT exten
     {
         LdapConnection connection = getAdminConnection();
         Dn base = addSearchData( new Dn( "ou=system" ), 3, 10 );
-        
+
         EntryCursor entries = connection.search( base.getName(), "(objectClass=*)", SearchScope.SUBTREE,
             "+" );
         int counter = 0;
@@ -350,7 +351,7 @@ public class SearchAuthorizationIT exten
             entries.get();
             counter++;
         }
-        
+
         entries.close();
 
         assertEquals( 10, counter );

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java Mon Sep 24 02:17:13 2012
@@ -133,7 +133,7 @@ public class ExceptionServiceIT extends 
             SearchScope.ONELEVEL, "*" );
 
         assertFalse( cursor.next() );
-        
+
         cursor.close();
     }
 
@@ -246,27 +246,27 @@ public class ExceptionServiceIT extends 
         LdapConnection connection = getAdminConnection( getService() );
 
         Entry entry = connection.lookup( "ou=users,ou=system" );
-        
+
         assertNotNull( entry );
         assertEquals( 1, entry.get( "ou" ).size() );
         assertEquals( "users", entry.get( "ou" ).getString() );
 
         connection.rename( "ou=users,ou=system", "ou=Users" );
-        
+
         entry = connection.lookup( "ou=Users,ou=system" );
-        
+
         assertNotNull( entry );
         assertEquals( 1, entry.get( "ou" ).size() );
         assertEquals( "Users", entry.get( "ou" ).getString() );
     }
 
-    
+
     /**
      * Test modifyRdn operation failure when the object renamed is existant.
      *
      * @throws Exception on error
      */
-    @Test(expected=LdapEntryAlreadyExistsException.class)
+    @Test(expected = LdapEntryAlreadyExistsException.class)
     public void testFailModifyRdnEntryAlreadyExists() throws Exception
     {
         LdapConnection connection = getAdminConnection( getService() );
@@ -504,7 +504,7 @@ public class ExceptionServiceIT extends 
     // ------------------------------------------------------------------------
 
     /**
-     * Tests for delete failure when the entry to be deleted has child entires.
+     * Tests for delete failure when the entry to be deleted has child entries.
      *
      * @throws Exception on error
      */

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/AliasSearchIT.java Mon Sep 24 02:17:13 2012
@@ -450,7 +450,7 @@ public class AliasSearchIT extends Abstr
                 cursor.beforeFirst();
 
                 List<String> nextResults = new ArrayList<String>();
-                
+
                 while ( nextResults.size() < count && cursor.next() )
                 {
                     nextResults.add( cursor.get().getDn().getName() );
@@ -459,7 +459,7 @@ public class AliasSearchIT extends Abstr
                 cursor.next();
 
                 List<String> prevResults = new ArrayList<String>();
-                
+
                 while ( cursor.previous() )
                 {
                     prevResults.add( 0, cursor.get().getDn().getName() );
@@ -468,7 +468,7 @@ public class AliasSearchIT extends Abstr
                 assertEquals( nextResults.size(), prevResults.size() );
                 assertEquals( nextResults, prevResults );
             }
-            
+
             cursor.close();
         }
         catch ( UnsupportedOperationException e )
@@ -497,7 +497,7 @@ public class AliasSearchIT extends Abstr
                 cursor.afterLast();
 
                 List<String> prevResults = new ArrayList<String>();
-                
+
                 while ( prevResults.size() < count && cursor.previous() )
                 {
                     prevResults.add( cursor.get().getDn().getName() );
@@ -506,7 +506,7 @@ public class AliasSearchIT extends Abstr
                 cursor.previous();
 
                 List<String> nextResults = new ArrayList<String>();
-                
+
                 while ( cursor.next() )
                 {
                     nextResults.add( 0, cursor.get().getDn().getName() );
@@ -515,7 +515,7 @@ public class AliasSearchIT extends Abstr
                 assertEquals( nextResults.size(), prevResults.size() );
                 assertEquals( nextResults, prevResults );
             }
-            
+
             cursor.close();
         }
         catch ( UnsupportedOperationException e )
@@ -530,7 +530,7 @@ public class AliasSearchIT extends Abstr
     {
         List<String> result = search( base, scope, filter, aliasDerefMode );
         assertEquals( expectedResults.length, result.size() );
-        
+
         for ( String expected : expectedResults )
         {
             assertTrue( result.contains( expected ) );
@@ -582,11 +582,11 @@ public class AliasSearchIT extends Abstr
     {
         List<String> nextResults = new ArrayList<String>();
 
-        ExprNode exprNode = FilterParser.parse(getService().getSchemaManager(), filter);
+        ExprNode exprNode = FilterParser.parse( getService().getSchemaManager(), filter );
         EntryFilteringCursor cursor = getService().getAdminSession().search( new Dn( base ), scope, exprNode,
             aliasDerefMode, null );
         cursor.beforeFirst();
-        
+
         while ( cursor.next() )
         {
             nextResults.add( cursor.get().getDn().getName() );
@@ -596,7 +596,7 @@ public class AliasSearchIT extends Abstr
         {
             List<String> prevResults = new ArrayList<String>();
             cursor.afterLast();
-            
+
             while ( cursor.previous() )
             {
                 prevResults.add( 0, cursor.get().getDn().getName() );

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchPerfIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchPerfIT.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchPerfIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchPerfIT.java Mon Sep 24 02:17:13 2012
@@ -71,7 +71,7 @@ public class SearchPerfIT extends Abstra
         assertEquals( 1, i );
 
         int nbIterations = 1500000;
-        
+
         Dn dn = new Dn( getService().getSchemaManager(), "uid=admin,ou=system" );
 
         SearchRequest searchRequest = new SearchRequestImpl();
@@ -85,7 +85,8 @@ public class SearchPerfIT extends Abstra
         long t0 = System.currentTimeMillis();
         long t00 = 0L;
         long tt0 = System.currentTimeMillis();
-        
+        int count = 0;
+
         for ( i = 0; i < nbIterations; i++ )
         {
             if ( i % 100000 == 0 )
@@ -106,8 +107,9 @@ public class SearchPerfIT extends Abstra
             while ( cursor.next() )
             {
                 cursor.get();
+                count++;
             }
-            
+
             cursor.close();
         }
 
@@ -115,7 +117,7 @@ public class SearchPerfIT extends Abstra
 
         Long deltaWarmed = ( t1 - t00 );
         System.out.println( "Delta : " + deltaWarmed + "( " + ( ( ( nbIterations - 500000 ) * 1000 ) / deltaWarmed )
-            + " per s ) /" + ( t1 - t0 ) );
+            + " per s ) /" + ( t1 - t0 ) + ", count : " + count );
         connection.close();
     }
 
@@ -156,6 +158,7 @@ public class SearchPerfIT extends Abstra
         long t0 = System.currentTimeMillis();
         long t00 = 0L;
         long tt0 = System.currentTimeMillis();
+        int count = 0;
 
         for ( i = 0; i < nbIterations; i++ )
         {
@@ -177,8 +180,9 @@ public class SearchPerfIT extends Abstra
             while ( cursor.next() )
             {
                 cursor.get();
+                count++;
             }
-            
+
             cursor.close();
         }
 
@@ -186,7 +190,7 @@ public class SearchPerfIT extends Abstra
 
         Long deltaWarmed = ( t1 - t00 );
         System.out.println( "Delta : " + deltaWarmed + "( " + ( ( ( nbIterations - 50000 ) * 1000 ) / deltaWarmed ) * 5
-            + " per s ) /" + ( t1 - t0 ) );
+            + " per s ) /" + ( t1 - t0 ) + ", count : " + count );
         connection.close();
     }
 
@@ -227,6 +231,7 @@ public class SearchPerfIT extends Abstra
         long t0 = System.currentTimeMillis();
         long t00 = 0L;
         long tt0 = System.currentTimeMillis();
+        int count = 0;
 
         for ( i = 0; i < nbIterations; i++ )
         {
@@ -248,16 +253,18 @@ public class SearchPerfIT extends Abstra
             while ( cursor.next() )
             {
                 cursor.get();
+                count++;
             }
-            
+
             cursor.close();
         }
 
         long t1 = System.currentTimeMillis();
 
         Long deltaWarmed = ( t1 - t00 );
-        System.out.println( "Delta : " + deltaWarmed + "( " + ( ( ( nbIterations - 50000 ) * 1000 ) / deltaWarmed ) * 10
-            + " per s ) /" + ( t1 - t0 ) );
+        System.out.println( "Delta : " + deltaWarmed + "( " + ( ( ( nbIterations - 50000 ) * 1000 ) / deltaWarmed )
+            * 10
+            + " per s ) /" + ( t1 - t0 ) + ", count : " + count );
         connection.close();
     }
 }

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java Mon Sep 24 02:17:13 2012
@@ -1303,7 +1303,7 @@ public class SubentryServiceIT extends A
         LdapApiService codec = LdapApiServiceFactory.getSingleton();
 
         SubentriesDecorator decorator = new SubentriesDecorator( codec );
-        Subentries ctl = ( Subentries ) decorator.getDecorated();
+        Subentries ctl = decorator.getDecorated();
         ctl.setVisibility( true );
         decorator.getValue();
         sysRoot.setRequestControls( JndiUtils.toJndiControls( codec, new Control[]

Modified: directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/DefaultDnFactory.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/DefaultDnFactory.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/DefaultDnFactory.java (original)
+++ directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/DefaultDnFactory.java Mon Sep 24 02:17:13 2012
@@ -114,10 +114,7 @@ public class DefaultDnFactory implements
         }
         else
         {
-            if ( !cachedDn.isSchemaAware() && ( schemaManager != null ) )
-            {
-                cachedDn.apply( schemaManager );
-            }
+            cachedDn.apply( schemaManager );
 
             if ( enableStats )
             {

Modified: directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java?rev=1389184&r1=1389183&r2=1389184&view=diff
==============================================================================
--- directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java (original)
+++ directory/apacheds/trunk/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java Mon Sep 24 02:17:13 2012
@@ -44,8 +44,8 @@ import org.apache.directory.server.core.
 import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.api.interceptor.context.CompareOperationContext;
 import org.apache.directory.server.core.api.interceptor.context.DeleteOperationContext;
-import org.apache.directory.server.core.api.interceptor.context.HasEntryOperationContext;
 import org.apache.directory.server.core.api.interceptor.context.GetRootDseOperationContext;
+import org.apache.directory.server.core.api.interceptor.context.HasEntryOperationContext;
 import org.apache.directory.server.core.api.interceptor.context.ListOperationContext;
 import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
 import org.apache.directory.server.core.api.interceptor.context.ModifyOperationContext;
@@ -559,28 +559,6 @@ public class DefaultPartitionNexus exten
             Entry retval = new ClonedServerEntry( rootDse );
 
             return retval;
-
-            /*
-            if ( ( lookupContext.getAttrsId() != null ) && !lookupContext.getAttrsId().isEmpty() )
-            {
-                for ( Attribute attribute : rootDse.getAttributes() )
-                {
-                    AttributeType attributeType = attribute.getAttributeType();
-                    String oid = attributeType.getOid();
-
-                    if ( !lookupContext.getAttrsId().contains( oid ) )
-                    {
-                        retval.removeAttributes( attributeType );
-                    }
-                }
-                
-                return retval;
-            }
-            else
-            {
-                return new ClonedServerEntry( rootDse );
-            }
-            */
         }
 
         Partition partition = getPartition( dn );
@@ -739,97 +717,121 @@ public class DefaultPartitionNexus exten
     public EntryFilteringCursor search( SearchOperationContext searchContext ) throws LdapException
     {
         Dn base = searchContext.getDn();
-        ExprNode filter = searchContext.getFilter();
 
         // TODO since we're handling the *, and + in the EntryFilteringCursor
         // we may not need this code: we need see if this is actually the
         // case and remove this code.
         if ( base.size() == 0 )
         {
-            // We are searching from the rootDSE. We have to distinguish three cases :
-            // 1) The scope is OBJECT : we have to return the rootDSE entry, filtered
-            // 2) The scope is ONELEVEL : we have to return all the Naming Contexts
-            boolean isObjectScope = searchContext.getScope() == SearchScope.OBJECT;
+            return searchFromRoot( searchContext );
+        }
 
-            boolean isOnelevelScope = searchContext.getScope() == SearchScope.ONELEVEL;
+        // Not sure we need this code...
+        base.apply( schemaManager );
 
-            boolean isSublevelScope = searchContext.getScope() == SearchScope.SUBTREE;
+        // Normal case : do a search on the specific partition
+        Partition backend = getPartition( base );
 
-            // test for (objectClass=*)
-            boolean isSearchAll = false;
+        return backend.search( searchContext );
+    }
 
-            // We have to be careful, as we may have a filter which is not a PresenceFilter
-            if ( filter instanceof PresenceNode )
-            {
-                isSearchAll = ( ( PresenceNode ) filter ).getAttributeType().equals( OBJECT_CLASS_AT );
-            }
 
-            /*
-             * if basedn is "", filter is "(objectclass=*)" and scope is object
-             * then we have a request for the rootDSE
-             */
-            if ( ( filter instanceof PresenceNode ) && isObjectScope && isSearchAll )
+    /**
+     * Do a search from the root of the DIT. We have a few use cases to consider :
+     * A) The scope is OBJECT
+     * If the filter is (ObjectClass = *), then this is a RootDSE fetch, otherwise, we just
+     * return nothing.
+     * B) The scope is ONELEVEL
+     * We just return the contextEntries of all the existing partitions
+     * C) The scope is SUBLEVEL :
+     * In this case, we have to do a search in each of the existing partition. We will get
+     * back a list of cursors and we will wrap this list in the resulting EntryFilteringCursor.
+     *   
+     * @param searchContext
+     * @return
+     * @throws LdapException
+     */
+    private EntryFilteringCursor searchFromRoot( SearchOperationContext searchContext )
+        throws LdapException
+    {
+        ExprNode filter = searchContext.getFilter();
+
+        // We are searching from the rootDSE. We have to distinguish three cases :
+        // 1) The scope is OBJECT : we have to return the rootDSE entry, filtered
+        // 2) The scope is ONELEVEL : we have to return all the Naming Contexts
+        boolean isObjectScope = searchContext.getScope() == SearchScope.OBJECT;
+
+        boolean isOnelevelScope = searchContext.getScope() == SearchScope.ONELEVEL;
+
+        // test for (objectClass=*)
+        boolean isSearchAll = false;
+
+        // We have to be careful, as we may have a filter which is not a PresenceFilter
+        if ( filter instanceof PresenceNode )
+        {
+            isSearchAll = ( ( PresenceNode ) filter ).getAttributeType().equals( OBJECT_CLASS_AT );
+        }
+
+        if ( isObjectScope )
+        {
+            if ( isSearchAll )
             {
+                // if basedn is "", filter is "(objectclass=*)" and scope is object
+                // then we have a request for the rootDSE
                 return searchRootDse( searchContext );
             }
-            else if ( isObjectScope && ( !isSearchAll ) )
+            else
             {
+                // Nothing to return in this case
                 return new BaseEntryFilteringCursor( new EmptyCursor<Entry>(), searchContext );
             }
-            else if ( isOnelevelScope )
+        }
+        else if ( isOnelevelScope )
+        {
+            // Loop on all the partitions
+            // We will look into all the partitions, thus we create a list of cursors. 
+            List<EntryFilteringCursor> cursors = new ArrayList<EntryFilteringCursor>();
+
+            for ( Partition partition : partitions.values() )
             {
-                List<EntryFilteringCursor> cursors = new ArrayList<EntryFilteringCursor>();
+                Dn contextDn = partition.getSuffixDn();
+                HasEntryOperationContext hasEntryContext = new HasEntryOperationContext(
+                    searchContext.getSession(), contextDn );
 
-                for ( Partition partition : partitions.values() )
+                // search only if the context entry exists
+                if ( partition.hasEntry( hasEntryContext ) )
                 {
-                    Dn contextDn = partition.getSuffixDn();
-                    HasEntryOperationContext hasEntryContext = new HasEntryOperationContext(
-                        searchContext.getSession(), contextDn );
-
-                    // search only if the context entry exists
-                    if ( partition.hasEntry( hasEntryContext ) )
-                    {
-                        searchContext.setDn( contextDn );
-                        searchContext.setScope( SearchScope.OBJECT );
-                        cursors.add( partition.search( searchContext ) );
-                    }
+                    searchContext.setDn( contextDn );
+                    searchContext.setScope( SearchScope.OBJECT );
+                    cursors.add( partition.search( searchContext ) );
                 }
-
-                return new CursorList( cursors, searchContext );
             }
-            else if ( isSublevelScope )
+
+            return new CursorList( cursors, searchContext );
+        }
+        else
+        {
+            // This is a SUBLEVEL search. We will do multiple searches and wrap
+            // a CursorList into the EntryFilteringCursor
+            List<EntryFilteringCursor> cursors = new ArrayList<EntryFilteringCursor>();
+
+            for ( Partition partition : partitions.values() )
             {
-                List<EntryFilteringCursor> cursors = new ArrayList<EntryFilteringCursor>();
+                Dn contextDn = partition.getSuffixDn();
+                HasEntryOperationContext hasEntryContext = new HasEntryOperationContext(
+                    searchContext.getSession(), contextDn );
 
-                for ( Partition partition : partitions.values() )
+                if ( partition.hasEntry( hasEntryContext ) )
                 {
-                    Entry entry = partition.lookup( new LookupOperationContext( directoryService.getAdminSession(),
-                        partition.getSuffixDn() ) );
-
-                    if ( entry != null )
-                    {
-                        Partition backend = getPartition( entry.getDn() );
-                        searchContext.setDn( entry.getDn() );
-                        cursors.add( backend.search( searchContext ) );
-                    }
+                    searchContext.setDn( contextDn );
+                    EntryFilteringCursor cursor = partition.search( searchContext );
+                    cursors.add( cursor );
                 }
-
-                // don't feed the above Cursors' list to a BaseEntryFilteringCursor it is skipping the naming context entry of each partition
-                return new CursorList( cursors, searchContext );
             }
 
-            // TODO : handle searches based on the RootDSE
-            throw new LdapNoSuchObjectException();
+            // don't feed the above Cursors' list to a BaseEntryFilteringCursor it is skipping the naming context entry of each partition
+            return new CursorList( cursors, searchContext );
         }
-
-        if ( !base.isSchemaAware() )
-        {
-            base.apply( schemaManager );
-        }
-
-        Partition backend = getPartition( base );
-
-        return backend.search( searchContext );
     }