Hi guys, When trying to add an alias entry which aliasedObjectName points to an non-existing entry, this is refused by the server. That's OK to avoid an inconsistent state.
However it is possible to - add a real entry, say "ou=people,dc=example,dc=com" - add an alias to it, say "ou=users,dc=example,dc=com" - delete the real entry "ou=people,dc=example,dc=com" After that the alias "ou=users,dc=example,dc=com" still exists and its aliasedObjectName still contains "ou=people,dc=example,dc=com", but that doesn't exist. Now when deleting this alias I get an NPE when dropping the subAliasIdx. I'd like to discuss the possible solutions: 1. Reject deletion of an entry, when an alias points to this entry. This is easy to check in the JdbmStore using the aliasIdx. 2. Automatically delete all alias entries that point to the entry that should be deleted (cool, some kind of cascade delete). This is also easy to implement in JdmbStore. 3. Keep the current sitation, but then we need to add some error handling for the aliasIdx, oneAliasIdx and subAliasIdx, what is painful IMHO. Thoughts? Please note that this is JDBM-specific and all handled within the JdbmStore. Other partition implementations need to re-implement this logic or may work different. Otherwise we must move this checks to a higher level, i.e. to the interceptor chain. Kind Regards, Stefan
