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 2010/06/03 19:05:29 UTC
svn commit: r951068 [5/6] - in /directory:
apacheds/trunk/avl-partition/src/main/java/org/apache/directory/server/core/partition/avl/
apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/
apacheds/trunk/core-api/src/main/java/org/apac...
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryManager.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryManager.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryManager.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryManager.java Thu Jun 3 17:05:26 2010
@@ -30,9 +30,10 @@ import javax.naming.directory.DirContext
import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.entry.Modification;
-import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.exception.LdapUnwillingToPerformException;
import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.name.DN;
@@ -111,7 +112,7 @@ public class SchemaSubentryManager
public SchemaSubentryManager( SchemaManager schemaManager, SchemaLoader loader )
- throws Exception
+ throws LdapException
{
this.schemaManager = schemaManager;
this.subentryModifier = new SchemaSubentryModifier( schemaManager );
@@ -155,7 +156,7 @@ public class SchemaSubentryManager
/* (non-Javadoc)
* @see org.apache.directory.server.core.schema.SchemaChangeManager#modifySchemaSubentry(org.apache.directory.server.core.interceptor.context.ModifyOperationContext, org.apache.directory.server.core.entry.Entry, org.apache.directory.server.core.entry.Entry, boolean)
*/
- public void modifySchemaSubentry( ModifyOperationContext opContext, boolean doCascadeModify ) throws Exception
+ public void modifySchemaSubentry( ModifyOperationContext opContext, boolean doCascadeModify ) throws LdapException
{
for ( Modification mod : opContext.getModItems() )
{
@@ -232,7 +233,7 @@ public class SchemaSubentryManager
* schema partition
*/
private void modifyRemoveOperation( ModifyOperationContext opContext, String opAttrOid,
- EntryAttribute mods ) throws Exception
+ EntryAttribute mods ) throws LdapException
{
int index = opAttr2handlerIndex.get( opAttrOid );
@@ -253,7 +254,9 @@ public class SchemaSubentryManager
{
subentryModifier.delete( opContext, normalizerDescription );
}
+
break;
+
case( SYNTAX_CHECKER_INDEX ):
SyntaxCheckerDescription[] syntaxCheckerDescriptions = parsers.parseSyntaxCheckers( mods );
@@ -261,7 +264,9 @@ public class SchemaSubentryManager
{
subentryModifier.delete( opContext, syntaxCheckerDescription );
}
+
break;
+
case( SYNTAX_INDEX ):
LdapSyntax[] syntaxes = parsers.parseLdapSyntaxes( mods );
@@ -269,7 +274,9 @@ public class SchemaSubentryManager
{
subentryModifier.deleteSchemaObject( opContext, syntax );
}
+
break;
+
case( MATCHING_RULE_INDEX ):
MatchingRule[] mrs = parsers.parseMatchingRules( mods );
@@ -277,7 +284,9 @@ public class SchemaSubentryManager
{
subentryModifier.deleteSchemaObject( opContext, mr );
}
+
break;
+
case( ATTRIBUTE_TYPE_INDEX ):
AttributeType[] ats = parsers.parseAttributeTypes( mods );
@@ -285,7 +294,9 @@ public class SchemaSubentryManager
{
subentryModifier.deleteSchemaObject( opContext, at );
}
+
break;
+
case( OBJECT_CLASS_INDEX ):
ObjectClass[] ocs = parsers.parseObjectClasses( mods );
@@ -293,7 +304,9 @@ public class SchemaSubentryManager
{
subentryModifier.deleteSchemaObject( opContext, oc );
}
+
break;
+
case( MATCHING_RULE_USE_INDEX ):
MatchingRuleUse[] mrus = parsers.parseMatchingRuleUses( mods );
@@ -301,7 +314,9 @@ public class SchemaSubentryManager
{
subentryModifier.deleteSchemaObject( opContext, mru );
}
+
break;
+
case( DIT_STRUCTURE_RULE_INDEX ):
DITStructureRule[] dsrs = parsers.parseDitStructureRules( mods );
@@ -309,7 +324,9 @@ public class SchemaSubentryManager
{
subentryModifier.deleteSchemaObject( opContext, dsr );
}
+
break;
+
case( DIT_CONTENT_RULE_INDEX ):
DITContentRule[] dcrs = parsers.parseDitContentRules( mods );
@@ -317,7 +334,9 @@ public class SchemaSubentryManager
{
subentryModifier.deleteSchemaObject( opContext, dcr );
}
+
break;
+
case( NAME_FORM_INDEX ):
NameForm[] nfs = parsers.parseNameForms( mods );
@@ -325,7 +344,9 @@ public class SchemaSubentryManager
{
subentryModifier.deleteSchemaObject( opContext, nf );
}
+
break;
+
default:
throw new IllegalStateException( I18n.err( I18n.ERR_285, index ) );
}
@@ -343,7 +364,7 @@ public class SchemaSubentryManager
* schema partition
*/
private void modifyAddOperation( ModifyOperationContext opContext, String opAttrOid,
- EntryAttribute mods, boolean doCascadeModify ) throws Exception
+ EntryAttribute mods, boolean doCascadeModify ) throws LdapException
{
if ( doCascadeModify )
{
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryModifier.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryModifier.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryModifier.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryModifier.java Thu Jun 3 17:05:26 2010
@@ -34,6 +34,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.constants.SchemaConstants;
import org.apache.directory.shared.ldap.entry.DefaultEntry;
import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.exception.LdapInvalidDnException;
import org.apache.directory.shared.ldap.name.DN;
import org.apache.directory.shared.ldap.schema.AttributeType;
@@ -137,7 +138,7 @@ public class SchemaSubentryModifier
}
- public void add( OperationContext opContext, LdapComparatorDescription comparatorDescription ) throws Exception
+ public void add( OperationContext opContext, LdapComparatorDescription comparatorDescription ) throws LdapException
{
String schemaName = getSchema( comparatorDescription );
DN dn = new DN(
@@ -152,7 +153,7 @@ public class SchemaSubentryModifier
}
- public void add( OperationContext opContext, NormalizerDescription normalizerDescription ) throws Exception
+ public void add( OperationContext opContext, NormalizerDescription normalizerDescription ) throws LdapException
{
String schemaName = getSchema( normalizerDescription );
DN dn = new DN(
@@ -167,7 +168,7 @@ public class SchemaSubentryModifier
}
- public void add( OperationContext opContext, SyntaxCheckerDescription syntaxCheckerDescription ) throws Exception
+ public void add( OperationContext opContext, SyntaxCheckerDescription syntaxCheckerDescription ) throws LdapException
{
String schemaName = getSchema( syntaxCheckerDescription );
DN dn = new DN(
@@ -181,7 +182,7 @@ public class SchemaSubentryModifier
}
- public void addSchemaObject( OperationContext opContext, SchemaObject obj ) throws Exception
+ public void addSchemaObject( OperationContext opContext, SchemaObject obj ) throws LdapException
{
Schema schema = schemaManager.getLoadedSchema( obj.getSchemaName() );
DN dn = getDn( obj );
@@ -192,14 +193,14 @@ public class SchemaSubentryModifier
}
- public void deleteSchemaObject( OperationContext opContext, SchemaObject obj ) throws Exception
+ public void deleteSchemaObject( OperationContext opContext, SchemaObject obj ) throws LdapException
{
DN dn = getDn( obj );
opContext.delete( dn, BYPASS );
}
- public void delete( OperationContext opContext, NormalizerDescription normalizerDescription ) throws Exception
+ public void delete( OperationContext opContext, NormalizerDescription normalizerDescription ) throws LdapException
{
String schemaName = getSchema( normalizerDescription );
DN dn = new DN(
@@ -212,7 +213,7 @@ public class SchemaSubentryModifier
}
- public void delete( OperationContext opContext, SyntaxCheckerDescription syntaxCheckerDescription ) throws Exception
+ public void delete( OperationContext opContext, SyntaxCheckerDescription syntaxCheckerDescription ) throws LdapException
{
String schemaName = getSchema( syntaxCheckerDescription );
DN dn = new DN(
@@ -224,7 +225,7 @@ public class SchemaSubentryModifier
}
- public void delete( OperationContext opContext, LdapComparatorDescription comparatorDescription ) throws Exception
+ public void delete( OperationContext opContext, LdapComparatorDescription comparatorDescription ) throws LdapException
{
String schemaName = getSchema( comparatorDescription );
DN dn = new DN(
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java Thu Jun 3 17:05:26 2010
@@ -64,8 +64,12 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.entry.ModificationOperation;
import org.apache.directory.shared.ldap.entry.StringValue;
import org.apache.directory.shared.ldap.entry.Value;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.exception.LdapInvalidAttributeValueException;
import org.apache.directory.shared.ldap.exception.LdapNoSuchAttributeException;
+import org.apache.directory.shared.ldap.exception.LdapOperationErrorException;
+import org.apache.directory.shared.ldap.exception.LdapOperationException;
+import org.apache.directory.shared.ldap.exception.LdapOtherException;
import org.apache.directory.shared.ldap.exception.LdapSchemaViolationException;
import org.apache.directory.shared.ldap.filter.EqualityNode;
import org.apache.directory.shared.ldap.filter.ExprNode;
@@ -132,7 +136,7 @@ public class SubentryInterceptor extends
private AttributeType objectClassType;
- public void init( DirectoryService directoryService ) throws Exception
+ public void init( DirectoryService directoryService ) throws LdapException
{
super.init( directoryService );
nexus = directoryService.getPartitionNexus();
@@ -178,32 +182,41 @@ public class SubentryInterceptor extends
EntryFilteringCursor subentries = nexus.search( searchOperationContext );
- while ( subentries.next() )
+ try
{
- Entry subentry = subentries.get();
- DN dnName = subentry.getDn();
-
- String subtree = subentry.get( SchemaConstants.SUBTREE_SPECIFICATION_AT ).getString();
- SubtreeSpecification ss;
-
- try
- {
- ss = ssParser.parse( subtree );
- }
- catch ( Exception e )
+ while ( subentries.next() )
{
- LOG.warn( "Failed while parsing subtreeSpecification for " + dnName );
- continue;
+ Entry subentry = subentries.get();
+ DN dnName = subentry.getDn();
+
+ String subtree = subentry.get( SchemaConstants.SUBTREE_SPECIFICATION_AT ).getString();
+ SubtreeSpecification ss;
+
+ try
+ {
+ ss = ssParser.parse( subtree );
+ }
+ catch ( Exception e )
+ {
+ LOG.warn( "Failed while parsing subtreeSpecification for " + dnName );
+ continue;
+ }
+
+ dnName.normalize( schemaManager.getNormalizerMapping() );
+ subentryCache.setSubentry( dnName.getNormName(), ss, getSubentryTypes( subentry ) );
}
-
- dnName.normalize( schemaManager.getNormalizerMapping() );
- subentryCache.setSubentry( dnName.getNormName(), ss, getSubentryTypes( subentry ) );
+
+ subentries.close();
+ }
+ catch ( Exception e )
+ {
+ throw new LdapOperationException( e.getMessage() );
}
}
}
- private int getSubentryTypes( Entry subentry ) throws Exception
+ private int getSubentryTypes( Entry subentry ) throws LdapException
{
int types = 0;
@@ -243,7 +256,7 @@ public class SubentryInterceptor extends
// -----------------------------------------------------------------------
public EntryFilteringCursor list( NextInterceptor nextInterceptor, ListOperationContext opContext )
- throws Exception
+ throws LdapException
{
EntryFilteringCursor cursor = nextInterceptor.list( opContext );
@@ -257,7 +270,7 @@ public class SubentryInterceptor extends
public EntryFilteringCursor search( NextInterceptor nextInterceptor, SearchOperationContext opContext )
- throws Exception
+ throws LdapException
{
EntryFilteringCursor cursor = nextInterceptor.search( opContext );
@@ -289,7 +302,7 @@ public class SubentryInterceptor extends
* @return true if subentries should be visible, false otherwise
* @throws Exception if there are problems accessing request controls
*/
- private boolean isSubentryVisible( OperationContext opContext ) throws Exception
+ private boolean isSubentryVisible( OperationContext opContext ) throws LdapException
{
if ( !opContext.hasRequestControls() )
{
@@ -321,7 +334,7 @@ public class SubentryInterceptor extends
* @return the set of subentry op attrs for an entry
* @throws Exception if there are problems accessing entry information
*/
- public Entry getSubentryAttributes( DN dn, Entry entryAttrs ) throws Exception
+ public Entry getSubentryAttributes( DN dn, Entry entryAttrs ) throws LdapException
{
Entry subentryAttrs = new DefaultEntry( schemaManager, dn );
Iterator<String> list = subentryCache.nameIterator();
@@ -399,7 +412,7 @@ public class SubentryInterceptor extends
}
- public void add( NextInterceptor next, AddOperationContext addContext ) throws Exception
+ public void add( NextInterceptor next, AddOperationContext addContext ) throws LdapException
{
DN name = addContext.getDn();
ClonedServerEntry entry = addContext.getEntry();
@@ -480,18 +493,25 @@ public class SubentryInterceptor extends
EntryFilteringCursor subentries = nexus.search( searchOperationContext );
- while ( subentries.next() )
+ try
{
- Entry candidate = subentries.get();
- DN dn = candidate.getDn();
- dn.normalize( schemaManager.getNormalizerMapping() );
-
- if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ while ( subentries.next() )
{
- nexus.modify( new ModifyOperationContext( addContext.getSession(), dn, getOperationalModsForAdd(
- candidate, operational ) ) );
+ Entry candidate = subentries.get();
+ DN dn = candidate.getDn();
+ dn.normalize( schemaManager.getNormalizerMapping() );
+
+ if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ {
+ nexus.modify( new ModifyOperationContext( addContext.getSession(), dn, getOperationalModsForAdd(
+ candidate, operational ) ) );
+ }
}
}
+ catch ( Exception e )
+ {
+ throw new LdapOtherException( e.getMessage() );
+ }
// TODO why are we doing this here if we got the entry from the
// opContext in the first place - got to look into this
@@ -585,7 +605,7 @@ public class SubentryInterceptor extends
// Methods dealing subentry deletion
// -----------------------------------------------------------------------
- public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws Exception
+ public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws LdapException
{
DN name = opContext.getDn();
Entry entry = opContext.getEntry();
@@ -623,17 +643,26 @@ public class SubentryInterceptor extends
EntryFilteringCursor subentries = nexus.search( searchOperationContext );
- while ( subentries.next() )
+ try
{
- Entry candidate = subentries.get();
- DN dn = new DN( candidate.getDn() );
- dn.normalize( schemaManager.getNormalizerMapping() );
-
- if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ while ( subentries.next() )
{
- nexus.modify( new ModifyOperationContext( opContext.getSession(), dn, getOperationalModsForRemove(
- name, candidate ) ) );
+ Entry candidate = subentries.get();
+ DN dn = new DN( candidate.getDn() );
+ dn.normalize( schemaManager.getNormalizerMapping() );
+
+ if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ {
+ nexus.modify( new ModifyOperationContext( opContext.getSession(), dn, getOperationalModsForRemove(
+ name, candidate ) ) );
+ }
}
+
+ subentries.close();
+ }
+ catch ( Exception e )
+ {
+ throw new LdapOperationException( e.getMessage() );
}
}
else
@@ -656,7 +685,7 @@ public class SubentryInterceptor extends
* are, false otherwise
* @throws Exception if there are errors while searching the directory
*/
- private boolean hasAdministrativeDescendant( OperationContext opContext, DN name ) throws Exception
+ private boolean hasAdministrativeDescendant( OperationContext opContext, DN name ) throws LdapException
{
ExprNode filter = new PresenceNode( "administrativeRole" );
SearchControls controls = new SearchControls();
@@ -668,17 +697,25 @@ public class SubentryInterceptor extends
EntryFilteringCursor aps = nexus.search( searchOperationContext );
- if ( aps.next() )
+ try
+ {
+ if ( aps.next() )
+ {
+ aps.close();
+ return true;
+ }
+ }
+ catch ( Exception e )
{
- aps.close();
- return true;
+ throw new LdapOperationException( e.getMessage() );
}
+
return false;
}
- private List<Modification> getModsOnEntryRdnChange( DN oldName, DN newName, Entry entry ) throws Exception
+ private List<Modification> getModsOnEntryRdnChange( DN oldName, DN newName, Entry entry ) throws LdapException
{
List<Modification> modList = new ArrayList<Modification>();
@@ -751,7 +788,7 @@ public class SubentryInterceptor extends
}
- public void rename( NextInterceptor next, RenameOperationContext opContext ) throws Exception
+ public void rename( NextInterceptor next, RenameOperationContext opContext ) throws LdapException
{
DN name = opContext.getDn();
@@ -791,17 +828,26 @@ public class SubentryInterceptor extends
EntryFilteringCursor subentries = nexus.search( searchOperationContext );
- while ( subentries.next() )
+ try
{
- Entry candidate = subentries.get();
- DN dn = candidate.getDn();
- dn.normalize( schemaManager.getNormalizerMapping() );
-
- if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ while ( subentries.next() )
{
- nexus.modify( new ModifyOperationContext( opContext.getSession(), dn, getOperationalModsForReplace(
- name, newName, subentry, candidate ) ) );
+ Entry candidate = subentries.get();
+ DN dn = candidate.getDn();
+ dn.normalize( schemaManager.getNormalizerMapping() );
+
+ if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ {
+ nexus.modify( new ModifyOperationContext( opContext.getSession(), dn, getOperationalModsForReplace(
+ name, newName, subentry, candidate ) ) );
+ }
}
+
+ subentries.close();
+ }
+ catch ( Exception e )
+ {
+ throw new LdapOperationException( e.getMessage() );
}
}
else
@@ -829,7 +875,7 @@ public class SubentryInterceptor extends
}
- public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext ) throws Exception
+ public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext ) throws LdapException
{
DN oriChildName = opContext.getDn();
DN parent = opContext.getParent();
@@ -870,17 +916,26 @@ public class SubentryInterceptor extends
EntryFilteringCursor subentries = nexus.search( searchOperationContext );
- while ( subentries.next() )
+ try
{
- Entry candidate = subentries.get();
- DN dn = candidate.getDn();
- dn.normalize( schemaManager.getNormalizerMapping() );
-
- if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ while ( subentries.next() )
{
- nexus.modify( new ModifyOperationContext( opContext.getSession(), dn, getOperationalModsForReplace(
- oriChildName, newName, subentry, candidate ) ) );
+ Entry candidate = subentries.get();
+ DN dn = candidate.getDn();
+ dn.normalize( schemaManager.getNormalizerMapping() );
+
+ if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ {
+ nexus.modify( new ModifyOperationContext( opContext.getSession(), dn, getOperationalModsForReplace(
+ oriChildName, newName, subentry, candidate ) ) );
+ }
}
+
+ subentries.close();
+ }
+ catch ( Exception e )
+ {
+ throw new LdapOperationException( e.getMessage() );
}
}
else
@@ -909,7 +964,7 @@ public class SubentryInterceptor extends
}
- public void move( NextInterceptor next, MoveOperationContext opContext ) throws Exception
+ public void move( NextInterceptor next, MoveOperationContext opContext ) throws LdapException
{
DN oriChildName = opContext.getDn();
DN newParentName = opContext.getParent();
@@ -948,17 +1003,26 @@ public class SubentryInterceptor extends
EntryFilteringCursor subentries = nexus.search( searchOperationContext );
- while ( subentries.next() )
+ try
{
- Entry candidate = subentries.get();
- DN dn = candidate.getDn();
- dn.normalize( schemaManager.getNormalizerMapping() );
-
- if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ while ( subentries.next() )
{
- nexus.modify( new ModifyOperationContext( opContext.getSession(), dn, getOperationalModsForReplace(
- oriChildName, newName, subentry, candidate ) ) );
+ Entry candidate = subentries.get();
+ DN dn = candidate.getDn();
+ dn.normalize( schemaManager.getNormalizerMapping() );
+
+ if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ {
+ nexus.modify( new ModifyOperationContext( opContext.getSession(), dn, getOperationalModsForReplace(
+ oriChildName, newName, subentry, candidate ) ) );
+ }
}
+
+ subentries.close();
+ }
+ catch ( Exception e )
+ {
+ throw new LdapOperationException( e.getMessage() );
}
}
else
@@ -990,7 +1054,7 @@ public class SubentryInterceptor extends
// Methods dealing subentry modification
// -----------------------------------------------------------------------
- private int getSubentryTypes( Entry entry, List<Modification> mods ) throws Exception
+ private int getSubentryTypes( Entry entry, List<Modification> mods ) throws LdapException
{
EntryAttribute ocFinalState = entry.get( SchemaConstants.OBJECT_CLASS_AT ).clone();
@@ -1032,7 +1096,7 @@ public class SubentryInterceptor extends
/**
* {@inheritDoc}
*/
- public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws Exception
+ public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws LdapException
{
DN dn = opContext.getDn();
List<Modification> mods = opContext.getModItems();
@@ -1091,18 +1155,25 @@ public class SubentryInterceptor extends
EntryFilteringCursor subentries = nexus.search( searchOperationContext );
- while ( subentries.next() )
+ try
{
- Entry candidate = subentries.get();
- DN candidateDn = candidate.getDn();
- candidateDn.normalize( schemaManager.getNormalizerMapping() );
-
- if ( evaluator.evaluate( ssOld, apName, candidateDn, candidate ) )
+ while ( subentries.next() )
{
- nexus.modify( new ModifyOperationContext( opContext.getSession(), candidateDn,
- getOperationalModsForRemove( dn, candidate ) ) );
+ Entry candidate = subentries.get();
+ DN candidateDn = candidate.getDn();
+ candidateDn.normalize( schemaManager.getNormalizerMapping() );
+
+ if ( evaluator.evaluate( ssOld, apName, candidateDn, candidate ) )
+ {
+ nexus.modify( new ModifyOperationContext( opContext.getSession(), candidateDn,
+ getOperationalModsForRemove( dn, candidate ) ) );
+ }
}
}
+ catch ( Exception e )
+ {
+ throw new LdapOperationErrorException( e.getMessage() );
+ }
// search for all selected entries by the new SS and add references to subentry
Subentry subentry = subentryCache.getSubentry( dn.getNormName() );
@@ -1115,18 +1186,25 @@ public class SubentryInterceptor extends
subentries = nexus.search( searchOperationContext );
- while ( subentries.next() )
+ try
{
- Entry candidate = subentries.get();
- DN candidateDn = candidate.getDn();
- candidateDn.normalize( schemaManager.getNormalizerMapping() );
-
- if ( evaluator.evaluate( ssNew, apName, candidateDn, candidate ) )
+ while ( subentries.next() )
{
- nexus.modify( new ModifyOperationContext( opContext.getSession(), candidateDn,
- getOperationalModsForAdd( candidate, operational ) ) );
+ Entry candidate = subentries.get();
+ DN candidateDn = candidate.getDn();
+ candidateDn.normalize( schemaManager.getNormalizerMapping() );
+
+ if ( evaluator.evaluate( ssNew, apName, candidateDn, candidate ) )
+ {
+ nexus.modify( new ModifyOperationContext( opContext.getSession(), candidateDn,
+ getOperationalModsForAdd( candidate, operational ) ) );
+ }
}
}
+ catch ( Exception e )
+ {
+ throw new LdapOperationErrorException( e.getMessage() );
+ }
}
else
{
@@ -1246,7 +1324,7 @@ public class SubentryInterceptor extends
* @param subentry the subentry to get attributes from
* @return the set of attributes to be added or removed from entries
*/
- private Entry getSubentryOperatationalAttributes( DN name, Subentry subentry ) throws Exception
+ private Entry getSubentryOperatationalAttributes( DN name, Subentry subentry ) throws LdapException
{
Entry operational = new DefaultEntry( schemaManager, name );
@@ -1312,7 +1390,7 @@ public class SubentryInterceptor extends
* @return the set of modifications required to remove an entry's reference to
* a subentry
*/
- private List<Modification> getOperationalModsForRemove( DN subentryDn, Entry candidate ) throws Exception
+ private List<Modification> getOperationalModsForRemove( DN subentryDn, Entry candidate ) throws LdapException
{
List<Modification> modList = new ArrayList<Modification>();
String dn = subentryDn.getNormName();
@@ -1348,7 +1426,7 @@ public class SubentryInterceptor extends
* @return the set of modifications needed to update the entry
* @throws Exception if there are probelms accessing modification items
*/
- public List<Modification> getOperationalModsForAdd( Entry entry, Entry operational ) throws Exception
+ public List<Modification> getOperationalModsForAdd( Entry entry, Entry operational ) throws LdapException
{
List<Modification> modList = new ArrayList<Modification>();
@@ -1443,7 +1521,7 @@ public class SubentryInterceptor extends
}
- private List<Modification> getModsOnEntryModification( DN name, Entry oldEntry, Entry newEntry ) throws Exception
+ private List<Modification> getModsOnEntryModification( DN name, Entry oldEntry, Entry newEntry ) throws LdapException
{
List<Modification> modList = new ArrayList<Modification>();
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java Thu Jun 3 17:05:26 2010
@@ -29,6 +29,7 @@ import java.util.Map;
import org.apache.directory.server.core.interceptor.context.OperationContext;
import org.apache.directory.server.core.partition.ByPassConstants;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.exception.LdapInvalidDnException;
import org.apache.directory.shared.ldap.name.DN;
import org.apache.directory.shared.ldap.trigger.StoredProcedureParameter;
@@ -77,7 +78,7 @@ public abstract class AbstractStoredProc
public final List<Object> getArgumentsToInject( OperationContext opContext,
- List<StoredProcedureParameter> parameterList ) throws Exception
+ List<StoredProcedureParameter> parameterList ) throws LdapException
{
List<Object> arguments = new ArrayList<Object>();
@@ -96,7 +97,7 @@ public abstract class AbstractStoredProc
MicroInjector $operationPrincipalInjector = new MicroInjector()
{
- public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws Exception
+ public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws LdapException
{
return getOperationPrincipal();
}
@@ -105,7 +106,7 @@ public abstract class AbstractStoredProc
MicroInjector $ldapContextInjector = new MicroInjector()
{
- public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws Exception
+ public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws LdapException
{
Generic_LDAP_CONTEXT ldapCtxParam = ( Generic_LDAP_CONTEXT ) param;
DN ldapCtxName = ldapCtxParam.getCtxName();
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java Thu Jun 3 17:05:26 2010
@@ -22,11 +22,10 @@ package org.apache.directory.server.core
import java.util.Map;
-import javax.naming.NamingException;
-
import org.apache.directory.server.core.interceptor.context.OperationContext;
import org.apache.directory.server.core.partition.ByPassConstants;
import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.name.DN;
import org.apache.directory.shared.ldap.trigger.StoredProcedureParameter;
@@ -38,7 +37,7 @@ public class DeleteStoredProcedureParame
public DeleteStoredProcedureParameterInjector( OperationContext opContext, DN deletedEntryName )
- throws Exception
+ throws LdapException
{
super( opContext );
this.deletedEntryName = deletedEntryName;
@@ -50,7 +49,7 @@ public class DeleteStoredProcedureParame
MicroInjector $nameInjector = new MicroInjector()
{
- public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws Exception
+ public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws LdapException
{
// Return a safe copy constructed with user provided name.
return new DN( deletedEntryName.getName() );
@@ -59,14 +58,14 @@ public class DeleteStoredProcedureParame
MicroInjector $deletedEntryInjector = new MicroInjector()
{
- public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws NamingException
+ public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws LdapException
{
return deletedEntry;
}
};
- private Entry getDeletedEntry( OperationContext opContext ) throws Exception
+ private Entry getDeletedEntry( OperationContext opContext ) throws LdapException
{
/**
* Using LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS here to exclude operational attributes
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java Thu Jun 3 17:05:26 2010
@@ -27,8 +27,8 @@ import java.util.Map;
import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
import org.apache.directory.server.core.interceptor.context.OperationContext;
import org.apache.directory.server.core.partition.ByPassConstants;
-import org.apache.directory.shared.ldap.entry.Modification;
import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.entry.Modification;
import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.exception.LdapInvalidDnException;
import org.apache.directory.shared.ldap.name.DN;
@@ -42,7 +42,7 @@ public class ModifyStoredProcedureParame
private Entry oldEntry;
- public ModifyStoredProcedureParameterInjector( ModifyOperationContext opContext ) throws Exception
+ public ModifyStoredProcedureParameterInjector( ModifyOperationContext opContext ) throws LdapException
{
super( opContext );
modifiedEntryName = opContext.getDn();
@@ -93,14 +93,14 @@ public class ModifyStoredProcedureParame
MicroInjector $newEntryInjector = new MicroInjector()
{
- public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws Exception
+ public Object inject( OperationContext opContext, StoredProcedureParameter param ) throws LdapException
{
return getEntry( opContext );
}
};
- private Entry getEntry( OperationContext opContext ) throws Exception
+ private Entry getEntry( OperationContext opContext ) throws LdapException
{
/**
* Using LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS here to exclude operational attributes
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/StoredProcedureParameterInjector.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/StoredProcedureParameterInjector.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/StoredProcedureParameterInjector.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/StoredProcedureParameterInjector.java Thu Jun 3 17:05:26 2010
@@ -23,6 +23,7 @@ package org.apache.directory.server.core
import java.util.List;
import org.apache.directory.server.core.interceptor.context.OperationContext;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.trigger.StoredProcedureParameter;
@@ -35,11 +36,11 @@ import org.apache.directory.shared.ldap.
public interface StoredProcedureParameterInjector
{
List<Object> getArgumentsToInject( OperationContext opContext,
- List<StoredProcedureParameter> parameterList ) throws Exception;
+ List<StoredProcedureParameter> parameterList ) throws LdapException;
public interface MicroInjector
{
- Object inject( OperationContext opContext, StoredProcedureParameter param ) throws Exception;
+ Object inject( OperationContext opContext, StoredProcedureParameter param ) throws LdapException;
}
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerExecutionAuthorizer.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerExecutionAuthorizer.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerExecutionAuthorizer.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerExecutionAuthorizer.java Thu Jun 3 17:05:26 2010
@@ -21,9 +21,10 @@ package org.apache.directory.server.core
import org.apache.directory.server.core.interceptor.context.OperationContext;
+import org.apache.directory.shared.ldap.exception.LdapException;
public interface TriggerExecutionAuthorizer
{
- boolean hasPermission( OperationContext opContext ) throws Exception;
+ boolean hasPermission( OperationContext opContext ) throws LdapException;
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java Thu Jun 3 17:05:26 2010
@@ -50,6 +50,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.entry.Value;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.exception.LdapOperationErrorException;
import org.apache.directory.shared.ldap.exception.LdapOtherException;
import org.apache.directory.shared.ldap.name.DN;
@@ -116,7 +117,7 @@ public class TriggerInterceptor extends
* @param proxy the partition nexus proxy
*/
private void addPrescriptiveTriggerSpecs( OperationContext opContext, List<TriggerSpecification> triggerSpecs,
- DN dn, Entry entry ) throws Exception
+ DN dn, Entry entry ) throws LdapException
{
/*
@@ -160,7 +161,7 @@ public class TriggerInterceptor extends
* @param entry the target entry that is considered as the trigger source
* @throws Exception if there are problems accessing attribute values
*/
- private void addEntryTriggerSpecs( List<TriggerSpecification> triggerSpecs, Entry entry ) throws Exception
+ private void addEntryTriggerSpecs( List<TriggerSpecification> triggerSpecs, Entry entry ) throws LdapException
{
EntryAttribute entryTrigger = entry.get( ENTRY_TRIGGER_ATTR );
@@ -230,7 +231,7 @@ public class TriggerInterceptor extends
// Interceptor Overrides
////////////////////////////////////////////////////////////////////////////
- public void init( DirectoryService directoryService ) throws Exception
+ public void init( DirectoryService directoryService ) throws LdapException
{
super.init( directoryService );
@@ -258,7 +259,7 @@ public class TriggerInterceptor extends
}
- public void add( NextInterceptor next, AddOperationContext addContext ) throws Exception
+ public void add( NextInterceptor next, AddOperationContext addContext ) throws LdapException
{
DN name = addContext.getDn();
Entry entry = addContext.getEntry();
@@ -293,7 +294,7 @@ public class TriggerInterceptor extends
}
- public void delete( NextInterceptor next, DeleteOperationContext deleteContext ) throws Exception
+ public void delete( NextInterceptor next, DeleteOperationContext deleteContext ) throws LdapException
{
DN name = deleteContext.getDn();
@@ -327,7 +328,7 @@ public class TriggerInterceptor extends
}
- public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws Exception
+ public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws LdapException
{
// Bypass trigger handling if the service is disabled.
if ( !enabled )
@@ -361,7 +362,7 @@ public class TriggerInterceptor extends
}
- public void rename( NextInterceptor next, RenameOperationContext renameContext ) throws Exception
+ public void rename( NextInterceptor next, RenameOperationContext renameContext ) throws LdapException
{
DN name = renameContext.getDn();
RDN newRdn = renameContext.getNewRdn();
@@ -406,7 +407,7 @@ public class TriggerInterceptor extends
}
- public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext ) throws Exception
+ public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext ) throws LdapException
{
DN oriChildName = opContext.getDn();
DN parent = opContext.getParent();
@@ -482,7 +483,7 @@ public class TriggerInterceptor extends
}
- public void move( NextInterceptor next, MoveOperationContext opContext ) throws Exception
+ public void move( NextInterceptor next, MoveOperationContext opContext ) throws LdapException
{
// Bypass trigger handling if the service is disabled.
if ( !enabled )
@@ -562,7 +563,7 @@ public class TriggerInterceptor extends
////////////////////////////////////////////////////////////////////////////
private Object executeTriggers( OperationContext opContext, List<TriggerSpecification> triggerSpecs,
- StoredProcedureParameterInjector injector ) throws Exception
+ StoredProcedureParameterInjector injector ) throws LdapException
{
Object result = null;
@@ -588,7 +589,7 @@ public class TriggerInterceptor extends
private Object executeTrigger( OperationContext opContext, TriggerSpecification tsec,
- StoredProcedureParameterInjector injector ) throws Exception
+ StoredProcedureParameterInjector injector ) throws LdapException
{
List<Object> returnValues = new ArrayList<Object>();
List<SPSpec> spSpecs = tsec.getSPSpecs();
@@ -605,7 +606,7 @@ public class TriggerInterceptor extends
}
- private Object executeProcedure( OperationContext opContext, String procedure, Object[] values ) throws Exception
+ private Object executeProcedure( OperationContext opContext, String procedure, Object[] values ) throws LdapException
{
try
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java Thu Jun 3 17:05:26 2010
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.naming.NamingException;
import javax.naming.directory.SearchControls;
import org.apache.directory.server.constants.ApacheSchemaConstants;
@@ -44,11 +45,13 @@ import org.apache.directory.server.core.
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.shared.ldap.constants.AuthenticationLevel;
import org.apache.directory.shared.ldap.constants.SchemaConstants;
-import org.apache.directory.shared.ldap.entry.StringValue;
+import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.entry.Modification;
-import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.entry.StringValue;
import org.apache.directory.shared.ldap.entry.Value;
+import org.apache.directory.shared.ldap.exception.LdapException;
+import org.apache.directory.shared.ldap.exception.LdapOperationException;
import org.apache.directory.shared.ldap.filter.EqualityNode;
import org.apache.directory.shared.ldap.filter.ExprNode;
import org.apache.directory.shared.ldap.message.AliasDerefMode;
@@ -92,7 +95,7 @@ public class TriggerSpecCache
* @param directoryService the directory service core
* @throws NamingException with problems initializing cache
*/
- public TriggerSpecCache( DirectoryService directoryService ) throws Exception
+ public TriggerSpecCache( DirectoryService directoryService ) throws LdapException
{
this.nexus = directoryService.getPartitionNexus();
final SchemaManager schemaManager = directoryService.getSchemaManager();
@@ -104,11 +107,12 @@ public class TriggerSpecCache
return schemaManager.getNormalizerMapping();
}
});
+
initialize( directoryService );
}
- private void initialize( DirectoryService directoryService ) throws Exception
+ private void initialize( DirectoryService directoryService ) throws LdapException
{
// search all naming contexts for trigger subentenries
// generate TriggerSpecification arrays for each subentry
@@ -134,29 +138,36 @@ public class TriggerSpecCache
EntryFilteringCursor results = nexus.search( searchOperationContext );
- while ( results.next() )
- {
- ClonedServerEntry resultEntry = results.get();
- DN subentryDn = resultEntry.getDn();
- EntryAttribute triggerSpec = resultEntry.get( PRESCRIPTIVE_TRIGGER_ATTR );
-
- if ( triggerSpec == null )
+ try
+ {
+ while ( results.next() )
{
- LOG.warn( "Found triggerExecutionSubentry '" + subentryDn + "' without any " + PRESCRIPTIVE_TRIGGER_ATTR );
- continue;
+ ClonedServerEntry resultEntry = results.get();
+ DN subentryDn = resultEntry.getDn();
+ EntryAttribute triggerSpec = resultEntry.get( PRESCRIPTIVE_TRIGGER_ATTR );
+
+ if ( triggerSpec == null )
+ {
+ LOG.warn( "Found triggerExecutionSubentry '" + subentryDn + "' without any " + PRESCRIPTIVE_TRIGGER_ATTR );
+ continue;
+ }
+
+ DN normSubentryName = subentryDn.normalize( directoryService.getSchemaManager()
+ .getNormalizerMapping() );
+ subentryAdded( normSubentryName, resultEntry );
}
-
- DN normSubentryName = subentryDn.normalize( directoryService.getSchemaManager()
- .getNormalizerMapping() );
- subentryAdded( normSubentryName, resultEntry );
+
+ results.close();
+ }
+ catch ( Exception e )
+ {
+ throw new LdapOperationException( e.getMessage() );
}
-
- results.close();
}
}
- private boolean hasPrescriptiveTrigger( Entry entry ) throws Exception
+ private boolean hasPrescriptiveTrigger( Entry entry ) throws LdapException
{
// only do something if the entry contains prescriptiveTrigger
EntryAttribute triggerSpec = entry.get( PRESCRIPTIVE_TRIGGER_ATTR );
@@ -165,7 +176,7 @@ public class TriggerSpecCache
}
- public void subentryAdded( DN normName, Entry entry ) throws Exception
+ public void subentryAdded( DN normName, Entry entry ) throws LdapException
{
// only do something if the entry contains prescriptiveTrigger
EntryAttribute triggerSpec = entry.get( PRESCRIPTIVE_TRIGGER_ATTR );
@@ -198,7 +209,7 @@ public class TriggerSpecCache
}
- public void subentryDeleted( DN normName, Entry entry ) throws Exception
+ public void subentryDeleted( DN normName, Entry entry ) throws LdapException
{
if ( !hasPrescriptiveTrigger( entry ) )
{
@@ -209,7 +220,7 @@ public class TriggerSpecCache
}
- public void subentryModified( ModifyOperationContext opContext, Entry entry ) throws Exception
+ public void subentryModified( ModifyOperationContext opContext, Entry entry ) throws LdapException
{
if ( !hasPrescriptiveTrigger( entry ) )
{
Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java Thu Jun 3 17:05:26 2010
@@ -339,13 +339,13 @@ public class MaxImmSubFilterTest
}
- public ClonedServerEntry lookup( DN dn, Collection<String> bypass ) throws Exception
+ public ClonedServerEntry lookup( DN dn, Collection<String> bypass ) throws LdapException
{
return null;
}
- public ClonedServerEntry lookup( LookupOperationContext lookupContext ) throws Exception
+ public ClonedServerEntry lookup( LookupOperationContext lookupContext ) throws LdapException
{
return null;
}
@@ -408,22 +408,22 @@ public class MaxImmSubFilterTest
}
- public void add( Entry entry, Collection<String> bypass ) throws Exception
+ public void add( Entry entry, Collection<String> bypass ) throws LdapException
{
}
- public void delete( DN dn, Collection<String> bypass ) throws Exception
+ public void delete( DN dn, Collection<String> bypass ) throws LdapException
{
}
- public void modify( DN dn, List<Modification> mods, Collection<String> bypass ) throws Exception
+ public void modify( DN dn, List<Modification> mods, Collection<String> bypass ) throws LdapException
{
}
- public boolean hasEntry( DN dn, Collection<String> byPass ) throws Exception
+ public boolean hasEntry( DN dn, Collection<String> byPass ) throws LdapException
{
return false;
}
@@ -809,7 +809,7 @@ public class MaxImmSubFilterTest
return null;
}
- public CoreSession getAdminSession() throws Exception
+ public CoreSession getAdminSession()
{
return null;
}
@@ -926,7 +926,7 @@ public class MaxImmSubFilterTest
this.count = count;
}
- public void add( AddOperationContext opContext ) throws Exception
+ public void add( AddOperationContext opContext ) throws LdapException
{
}
@@ -936,68 +936,68 @@ public class MaxImmSubFilterTest
}
- public boolean compare( CompareOperationContext opContext ) throws Exception
+ public boolean compare( CompareOperationContext opContext ) throws LdapException
{
return false;
}
- public void delete( DeleteOperationContext opContext ) throws Exception
+ public void delete( DeleteOperationContext opContext ) throws LdapException
{
}
- public DN getMatchedName( GetMatchedNameOperationContext opContext ) throws Exception
+ public DN getMatchedName( GetMatchedNameOperationContext opContext ) throws LdapException
{
return null;
}
- public ClonedServerEntry getRootDSE( GetRootDSEOperationContext opContext ) throws Exception
+ public ClonedServerEntry getRootDSE( GetRootDSEOperationContext opContext ) throws LdapException
{
return null;
}
- public DN getSuffix( GetSuffixOperationContext opContext ) throws Exception
+ public DN getSuffix( GetSuffixOperationContext opContext ) throws LdapException
{
return null;
}
- public boolean hasEntry( EntryOperationContext opContext ) throws Exception
+ public boolean hasEntry( EntryOperationContext opContext ) throws LdapException
{
return false;
}
- public EntryFilteringCursor list( ListOperationContext opContext ) throws Exception
+ public EntryFilteringCursor list( ListOperationContext opContext ) throws LdapException
{
return null;
}
- public Set<String> listSuffixes( ListSuffixOperationContext opContext ) throws Exception
+ public Set<String> listSuffixes( ListSuffixOperationContext opContext ) throws LdapException
{
return null;
}
- public ClonedServerEntry lookup( LookupOperationContext opContext ) throws Exception
+ public ClonedServerEntry lookup( LookupOperationContext opContext ) throws LdapException
{
return null;
}
- public void modify( ModifyOperationContext opContext ) throws Exception
+ public void modify( ModifyOperationContext opContext ) throws LdapException
{
}
- public void move( MoveOperationContext opContext ) throws Exception
+ public void move( MoveOperationContext opContext ) throws LdapException
{
}
- public void moveAndRename( MoveAndRenameOperationContext opContext ) throws Exception
+ public void moveAndRename( MoveAndRenameOperationContext opContext ) throws LdapException
{
}
- public void rename( RenameOperationContext opContext ) throws Exception
+ public void rename( RenameOperationContext opContext ) throws LdapException
{
}
- public EntryFilteringCursor search( SearchOperationContext opContext ) throws Exception
+ public EntryFilteringCursor search( SearchOperationContext opContext ) throws LdapException
{
return new BaseEntryFilteringCursor( new BogusCursor( count ), opContext );
}
Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java Thu Jun 3 17:05:26 2010
@@ -616,7 +616,7 @@ public class InterceptorChainTest
}
- public CoreSession getAdminSession() throws Exception
+ public CoreSession getAdminSession()
{
return null;
}
Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/MockInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/MockInterceptor.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/MockInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/MockInterceptor.java Thu Jun 3 17:05:26 2010
@@ -22,8 +22,6 @@ package org.apache.directory.server.core
import java.util.Set;
-import javax.naming.NamingException;
-
import org.apache.directory.server.core.DirectoryService;
import org.apache.directory.server.core.entry.ClonedServerEntry;
import org.apache.directory.server.core.filtering.EntryFilteringCursor;
@@ -76,7 +74,7 @@ public class MockInterceptor implements
public void init( DirectoryService directoryService )
- throws NamingException
+ throws LdapException
{
}
@@ -86,28 +84,28 @@ public class MockInterceptor implements
}
- public ClonedServerEntry getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws Exception
+ public ClonedServerEntry getRootDSE( NextInterceptor next, GetRootDSEOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.getRootDSE( opContext );
}
- public DN getMatchedName ( NextInterceptor next, GetMatchedNameOperationContext opContext ) throws Exception
+ public DN getMatchedName ( NextInterceptor next, GetMatchedNameOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.getMatchedName( opContext );
}
- public DN getSuffix ( NextInterceptor next, GetSuffixOperationContext opContext ) throws Exception
+ public DN getSuffix ( NextInterceptor next, GetSuffixOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.getSuffix( opContext );
}
- public Set<String> listSuffixes ( NextInterceptor next, ListSuffixOperationContext opContext ) throws Exception
+ public Set<String> listSuffixes ( NextInterceptor next, ListSuffixOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.listSuffixes( opContext );
@@ -115,28 +113,28 @@ public class MockInterceptor implements
public void addContextPartition( NextInterceptor next, AddContextPartitionOperationContext opContext )
- throws Exception
+ throws LdapException
{
test.interceptors.add( this );
next.addContextPartition( opContext );
}
- public void removeContextPartition( NextInterceptor next, RemoveContextPartitionOperationContext opContext ) throws Exception
+ public void removeContextPartition( NextInterceptor next, RemoveContextPartitionOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
next.removeContextPartition( opContext );
}
- public boolean compare( NextInterceptor next, CompareOperationContext opContext ) throws Exception
+ public boolean compare( NextInterceptor next, CompareOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.compare( opContext );
}
- public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws Exception
+ public void delete( NextInterceptor next, DeleteOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
next.delete( opContext );
@@ -144,42 +142,42 @@ public class MockInterceptor implements
public void add( NextInterceptor next, AddOperationContext opContext )
- throws Exception
+ throws LdapException
{
test.interceptors.add( this );
next.add( opContext );
}
- public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws Exception
+ public void modify( NextInterceptor next, ModifyOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
next.modify( opContext );
}
- public EntryFilteringCursor list( NextInterceptor next, ListOperationContext opContext ) throws Exception
+ public EntryFilteringCursor list( NextInterceptor next, ListOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.list( opContext );
}
- public EntryFilteringCursor search( NextInterceptor next, SearchOperationContext opContext ) throws Exception
+ public EntryFilteringCursor search( NextInterceptor next, SearchOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.search( opContext );
}
- public Entry lookup( NextInterceptor next, LookupOperationContext opContext ) throws Exception
+ public Entry lookup( NextInterceptor next, LookupOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.lookup( opContext );
}
- public boolean hasEntry( NextInterceptor next, EntryOperationContext opContext ) throws Exception
+ public boolean hasEntry( NextInterceptor next, EntryOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
return next.hasEntry( opContext );
@@ -187,14 +185,14 @@ public class MockInterceptor implements
public void rename( NextInterceptor next, RenameOperationContext opContext )
- throws Exception
+ throws LdapException
{
test.interceptors.add( this );
next.rename( opContext );
}
- public void move( NextInterceptor next, MoveOperationContext opContext ) throws Exception
+ public void move( NextInterceptor next, MoveOperationContext opContext ) throws LdapException
{
test.interceptors.add( this );
next.move( opContext );
@@ -202,7 +200,7 @@ public class MockInterceptor implements
public void moveAndRename( NextInterceptor next, MoveAndRenameOperationContext opContext )
- throws Exception
+ throws LdapException
{
test.interceptors.add( this );
next.moveAndRename( opContext );
Modified: directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java (original)
+++ directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java Thu Jun 3 17:05:26 2010
@@ -30,6 +30,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.naming.NamingException;
+
import org.apache.directory.server.core.authn.AuthenticationInterceptor;
import org.apache.directory.server.core.authz.AciAuthorizationInterceptor;
import org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor;
@@ -59,15 +61,16 @@ import org.apache.directory.server.kerbe
import org.apache.directory.server.kerberos.shared.store.KerberosAttribute;
import org.apache.directory.shared.ldap.constants.SchemaConstants;
import org.apache.directory.shared.ldap.entry.BinaryValue;
-import org.apache.directory.shared.ldap.entry.DefaultModification;
import org.apache.directory.shared.ldap.entry.DefaultEntryAttribute;
-import org.apache.directory.shared.ldap.entry.StringValue;
+import org.apache.directory.shared.ldap.entry.DefaultModification;
+import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.entry.Modification;
import org.apache.directory.shared.ldap.entry.ModificationOperation;
-import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.entry.StringValue;
import org.apache.directory.shared.ldap.entry.Value;
import org.apache.directory.shared.ldap.exception.LdapAuthenticationException;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.name.DN;
import org.apache.directory.shared.ldap.schema.SchemaManager;
import org.apache.directory.shared.ldap.util.StringTools;
@@ -123,7 +126,7 @@ public class KeyDerivationInterceptor ex
* the special keyword 'randomKey', set random keys for the principal. Set the key version number (kvno)
* to '0'.
*/
- public void add( NextInterceptor next, AddOperationContext addContext ) throws Exception
+ public void add( NextInterceptor next, AddOperationContext addContext ) throws LdapException
{
DN normName = addContext.getDn();
@@ -178,7 +181,7 @@ public class KeyDerivationInterceptor ex
*
* If the 'userPassword' is the special keyword 'randomKey', set random keys for the principal.
*/
- public void modify( NextInterceptor next, ModifyOperationContext modContext ) throws Exception
+ public void modify( NextInterceptor next, ModifyOperationContext modContext ) throws LdapException
{
ModifySubContext subContext = new ModifySubContext();
@@ -207,7 +210,7 @@ public class KeyDerivationInterceptor ex
* @throws NamingException
*/
void detectPasswordModification( ModifyOperationContext modContext, ModifySubContext subContext )
- throws Exception
+ throws LdapException
{
List<Modification> mods = modContext.getModItems();
@@ -281,7 +284,7 @@ public class KeyDerivationInterceptor ex
* @throws NamingException
*/
void lookupPrincipalAttributes( ModifyOperationContext modContext, ModifySubContext subContext )
- throws Exception
+ throws LdapException
{
DN principalDn = modContext.getDn();
@@ -346,7 +349,7 @@ public class KeyDerivationInterceptor ex
* @param modContext
* @param subContext
*/
- void deriveKeys( ModifyOperationContext modContext, ModifySubContext subContext ) throws Exception
+ void deriveKeys( ModifyOperationContext modContext, ModifySubContext subContext ) throws LdapException
{
List<Modification> mods = modContext.getModItems();
@@ -393,7 +396,7 @@ public class KeyDerivationInterceptor ex
}
- private EntryAttribute getKeyAttribute( SchemaManager schemaManager, Map<EncryptionType, EncryptionKey> keys ) throws Exception
+ private EntryAttribute getKeyAttribute( SchemaManager schemaManager, Map<EncryptionType, EncryptionKey> keys ) throws LdapException
{
EntryAttribute keyAttribute =
new DefaultEntryAttribute( KerberosAttribute.KRB5_KEY_AT,
Modified: directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/PasswordPolicyInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/PasswordPolicyInterceptor.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/PasswordPolicyInterceptor.java (original)
+++ directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/PasswordPolicyInterceptor.java Thu Jun 3 17:05:26 2010
@@ -20,6 +20,9 @@
package org.apache.directory.server.core.kerberos;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.directory.server.core.interceptor.BaseInterceptor;
import org.apache.directory.server.core.interceptor.Interceptor;
import org.apache.directory.server.core.interceptor.NextInterceptor;
@@ -27,19 +30,17 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.interceptor.context.ModifyOperationContext;
import org.apache.directory.shared.ldap.constants.SchemaConstants;
import org.apache.directory.shared.ldap.entry.BinaryValue;
-import org.apache.directory.shared.ldap.entry.StringValue;
+import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.entry.Modification;
-import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.entry.StringValue;
import org.apache.directory.shared.ldap.entry.Value;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.name.DN;
import org.apache.directory.shared.ldap.util.StringTools;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* An {@link Interceptor} that enforces password policy for users. Add or modify operations
@@ -65,7 +66,7 @@ public class PasswordPolicyInterceptor e
* Check added attributes for a 'userPassword'. If a 'userPassword' is found, apply any
* password policy checks.
*/
- public void add( NextInterceptor next, AddOperationContext addContext ) throws Exception
+ public void add( NextInterceptor next, AddOperationContext addContext ) throws LdapException
{
DN normName = addContext.getDn();
@@ -109,7 +110,7 @@ public class PasswordPolicyInterceptor e
* Check modification items for a 'userPassword'. If a 'userPassword' is found, apply any
* password policy checks.
*/
- public void modify( NextInterceptor next, ModifyOperationContext modContext ) throws Exception
+ public void modify( NextInterceptor next, ModifyOperationContext modContext ) throws LdapException
{
DN name = modContext.getDn();
@@ -184,7 +185,7 @@ public class PasswordPolicyInterceptor e
}
- void check( String username, String password ) throws Exception
+ void check( String username, String password ) throws LdapException
{
int passwordLength = 6;
int categoryCount = 2;
@@ -195,7 +196,7 @@ public class PasswordPolicyInterceptor e
String explanation = buildErrorMessage( username, password, passwordLength, categoryCount, tokenSize );
log.error( explanation );
- throw new Exception( explanation );
+ throw new LdapException( explanation );
}
}
Modified: directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java (original)
+++ directory/apacheds/trunk/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java Thu Jun 3 17:05:26 2010
@@ -50,6 +50,7 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.exception.LdapException;
import org.apache.directory.shared.ldap.exception.LdapInvalidDnException;
+import org.apache.directory.shared.ldap.exception.LdapOperationException;
import org.apache.directory.shared.ldap.ldif.LdapLdifException;
import org.apache.directory.shared.ldap.ldif.LdifEntry;
import org.apache.directory.shared.ldap.ldif.LdifReader;
@@ -253,7 +254,7 @@ public class LdifPartition extends BTree
* {@inheritDoc}
*/
@Override
- public void add( AddOperationContext addContext ) throws Exception
+ public void add( AddOperationContext addContext ) throws LdapException
{
wrappedPartition.add( addContext );
add( addContext.getEntry() );
@@ -273,7 +274,7 @@ public class LdifPartition extends BTree
* {@inheritDoc}
*/
@Override
- public void delete( Long id ) throws Exception
+ public void delete( Long id ) throws LdapException
{
Entry entry = lookup( id );
@@ -306,7 +307,7 @@ public class LdifPartition extends BTree
* {@inheritDoc}
*/
@Override
- public void modify( ModifyOperationContext modifyContext ) throws Exception
+ public void modify( ModifyOperationContext modifyContext ) throws LdapException
{
Long id = getEntryId( modifyContext.getDn() );
@@ -320,9 +321,16 @@ public class LdifPartition extends BTree
DN dn = modifyContext.getDn();
// And write it back on disk
- FileWriter fw = new FileWriter( getFile( dn, DELETE ) );
- fw.write( LdifUtils.convertEntryToLdif( modifiedEntry, true ) );
- fw.close();
+ try
+ {
+ FileWriter fw = new FileWriter( getFile( dn, DELETE ) );
+ fw.write( LdifUtils.convertEntryToLdif( modifiedEntry, true ) );
+ fw.close();
+ }
+ catch ( IOException ioe )
+ {
+ throw new LdapOperationException( ioe.getMessage() );
+ }
}
@@ -330,7 +338,7 @@ public class LdifPartition extends BTree
* {@inheritDoc}
*/
@Override
- public void move( MoveOperationContext moveContext ) throws Exception
+ public void move( MoveOperationContext moveContext ) throws LdapException
{
DN oldDn = moveContext.getDn();
Long id = getEntryId( oldDn );
@@ -348,7 +356,7 @@ public class LdifPartition extends BTree
* {@inheritDoc}
*/
@Override
- public void moveAndRename( MoveAndRenameOperationContext moveAndRenameContext ) throws Exception
+ public void moveAndRename( MoveAndRenameOperationContext moveAndRenameContext ) throws LdapException
{
DN oldDn = moveAndRenameContext.getDn();
Long id = getEntryId( oldDn );
@@ -367,7 +375,7 @@ public class LdifPartition extends BTree
* {@inheritDoc}
*/
@Override
- public void rename( RenameOperationContext renameContext ) throws Exception
+ public void rename( RenameOperationContext renameContext ) throws LdapException
{
DN oldDn = renameContext.getDn();
Long id = getEntryId( oldDn );
@@ -395,26 +403,34 @@ public class LdifPartition extends BTree
* @param deleteOldEntry a flag to tell whether to delete the old entry files
* @throws Exception
*/
- private void entryMoved( DN oldEntryDn, Entry modifiedEntry, Long entryIdOld ) throws Exception
+ private void entryMoved( DN oldEntryDn, Entry modifiedEntry, Long entryIdOld ) throws LdapException
{
// First, add the new entry
add( modifiedEntry );
// Then, if there are some children, move then to the new place
- IndexCursor<Long, Entry, Long> cursor = getSubLevelIndex().forwardCursor( entryIdOld );
-
- while ( cursor.next() )
+ try
{
- IndexEntry<Long, Entry, Long> entry = cursor.get();
-
- // except the parent entry add the rest of entries
- if ( entry.getId() != entryIdOld )
- {
- add( wrappedPartition.lookup( entry.getId() ) );
+ IndexCursor<Long, Entry, Long> cursor = getSubLevelIndex().forwardCursor( entryIdOld );
+
+ while ( cursor.next() )
+ {
+ IndexEntry<Long, Entry, Long> entry = cursor.get();
+
+ // except the parent entry add the rest of entries
+ if ( entry.getId() != entryIdOld )
+ {
+ add( wrappedPartition.lookup( entry.getId() ) );
+ }
}
+
+ cursor.close();
+ }
+ catch ( Exception e )
+ {
+ throw new LdapOperationException( e.getMessage() );
}
- cursor.close();
// And delete the old entry's LDIF file
File file = getFile( oldEntryDn, DELETE );
@@ -736,11 +752,18 @@ public class LdifPartition extends BTree
* Write the new entry on disk. It does not exist, as this ha sbeen checked
* by the ExceptionInterceptor.
*/
- private void add( Entry entry ) throws Exception
+ private void add( Entry entry ) throws LdapException
{
- FileWriter fw = new FileWriter( getFile( entry.getDn(), CREATE ) );
- fw.write( LdifUtils.convertEntryToLdif( entry ) );
- fw.close();
+ try
+ {
+ FileWriter fw = new FileWriter( getFile( entry.getDn(), CREATE ) );
+ fw.write( LdifUtils.convertEntryToLdif( entry ) );
+ fw.close();
+ }
+ catch ( IOException ioe )
+ {
+ throw new LdapOperationException( ioe.getMessage() );
+ }
}
@@ -800,7 +823,7 @@ public class LdifPartition extends BTree
@Override
- public int getChildCount( Long id ) throws Exception
+ public int getChildCount( Long id ) throws LdapException
{
return wrappedPartition.getChildCount( id );
}
@@ -814,7 +837,7 @@ public class LdifPartition extends BTree
@Override
- public Long getEntryId( DN dn ) throws Exception
+ public Long getEntryId( DN dn ) throws LdapException
{
return wrappedPartition.getEntryId( dn );
}
@@ -912,14 +935,14 @@ public class LdifPartition extends BTree
@Override
- public IndexCursor<Long, Entry, Long> list( Long id ) throws Exception
+ public IndexCursor<Long, Entry, Long> list( Long id ) throws LdapException
{
return wrappedPartition.list( id );
}
@Override
- public ClonedServerEntry lookup( Long id ) throws Exception
+ public ClonedServerEntry lookup( Long id ) throws LdapException
{
return wrappedPartition.lookup( id );
}
Modified: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchLimitsIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchLimitsIT.java?rev=951068&r1=951067&r2=951068&view=diff
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchLimitsIT.java (original)
+++ directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchLimitsIT.java Thu Jun 3 17:05:26 2010
@@ -49,6 +49,7 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.interceptor.context.SearchOperationContext;
import org.apache.directory.server.core.interceptor.context.SearchingOperationContext;
import org.apache.directory.server.ldap.LdapServer;
+import org.apache.directory.shared.ldap.exception.LdapException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -135,7 +136,7 @@ public class SearchLimitsIT extends Abst
private Long delayMillis;
- public EntryFilteringCursor search( NextInterceptor next, SearchOperationContext opContext ) throws Exception
+ public EntryFilteringCursor search( NextInterceptor next, SearchOperationContext opContext ) throws LdapException
{
EntryFilteringCursor cursor = next.search( opContext );
cursor.addEntryFilter( new EntryFilter() {