Use a String for the Partitions data structure instead of a DN.
git-svn-id: https://svn.apache.org/repos/asf/directory/apacheds/trunk@1749720 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/partition/PartitionNexus.java b/core-api/src/main/java/org/apache/directory/server/core/api/partition/PartitionNexus.java
index 9ce96c3..f648618 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/partition/PartitionNexus.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/partition/PartitionNexus.java
@@ -83,7 +83,7 @@
* @param partitionDn the partition Dn
* @throws Exception If the removal can't be done
*/
- void removeContextPartition( Dn partitionDn ) throws LdapException;
+ void removeContextPartition( String partitionDn ) throws LdapException;
/**
diff --git a/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java b/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
index 6e13bc4..5b1ee92 100644
--- a/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
+++ b/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
@@ -284,7 +284,7 @@
{
try
{
- removeContextPartition( directoryService.getDnFactory().create( suffix ) );
+ removeContextPartition( suffix );
}
catch ( Exception e )
{
@@ -840,18 +840,15 @@
/**
* {@inheritDoc}
*/
- public synchronized void removeContextPartition( Dn partitionDn )
+ public synchronized void removeContextPartition( String partitionDn )
throws LdapException
{
- // Get the Partition name. It's a Dn.
- String key = partitionDn.getNormName();
-
// Retrieve this partition from the aprtition's table
- Partition partition = partitions.get( key );
+ Partition partition = partitions.get( partitionDn );
if ( partition == null )
{
- String msg = I18n.err( I18n.ERR_34, key );
+ String msg = I18n.err( I18n.ERR_34, partitionDn );
LOG.error( msg );
throw new LdapNoSuchObjectException( msg );
}
@@ -870,7 +867,7 @@
}
else
{
- String msg = I18n.err( I18n.ERR_35, key );
+ String msg = I18n.err( I18n.ERR_35, partitionDn );
LOG.error( msg );
throw new LdapNoSuchObjectException( msg );
}
@@ -882,7 +879,7 @@
partitionLookupTree.remove( partition.getSuffixDn() );
}
- partitions.remove( key );
+ partitions.remove( partitionDn );
try
{
diff --git a/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java b/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
index 8fbad4a..bbe7d78 100644
--- a/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
+++ b/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
@@ -910,7 +910,7 @@
// can be null when called before starting up
if ( partitionNexus != null )
{
- partitionNexus.removeContextPartition( partition.getSuffixDn() );
+ partitionNexus.removeContextPartition( partition.getSuffixDn().getNormName() );
}
}
catch ( LdapException le )