[ 
https://issues.apache.org/jira/browse/DIRSERVER-1357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12713295#action_12713295
 ] 

Emmanuel Lecharny commented on DIRSERVER-1357:
----------------------------------------------

I can fix the NPE, but then I have another issue.

Let's say we have the entry E, and the alias A pointing on E. 
1) We remove E. A is pointing on nothing, the alias index is updated
2) We now remove A

So far, so good, the test pass ok. Now we have to revert the operation :
3) we inject A back into the server : BANG !

The server does not allow addition of aliases pointing on invalid entries  :
        /*
         * Check For Target Existance
         * 
         * We do not allow the creation of inconsistant aliases.  Aliases should
         * not be broken links.  If the target does not exist we start screaming
         */

I'm not sure this is a correct behavior. All in all, it's the client 
responsability to manage correctly Aliases, no ?

> NullPointerException when deleting alias
> ----------------------------------------
>
>                 Key: DIRSERVER-1357
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1357
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.5.5, 1.5.4
>            Reporter: Stefan Seelmann
>             Fix For: 1.5.5
>
>         Attachments: DIRSERVER_1357.java
>
>
> There is a NPE when deleting an alias entry is some special case. Here is a 
> example DIT:
> ou=system
>    |--ou=sales
>    |    |--cn=foo  <--real entry
>    |--ou=engineering
>         |--cn=foo  <--alias, pointing to the real entry
> When I first delete the real entry and afterwards the alias the server throws 
> an exception, when it cleans the oneAliasIdx and subAliasIdx in the 
> JdbmStore. Note, the exception does not occur if the real entry and alias are 
> direct descendants of the context entry, because in that case the oneAliasIdx 
> and subAliasIdx are not used.
> java.lang.NullPointerException
>       at 
> org.apache.directory.server.core.partition.impl.btree.LongComparator.compare(LongComparator.java:45)
>       at 
> org.apache.directory.server.core.partition.impl.btree.LongComparator.compare(LongComparator.java:1)
>       at 
> org.apache.directory.server.core.avltree.AvlTree.find(AvlTree.java:661)
>       at 
> org.apache.directory.server.core.avltree.AvlTree.remove(AvlTree.java:217)
>       at 
> org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmTable.remove(JdbmTable.java:662)
>       at 
> org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmIndex.drop(JdbmIndex.java:468)
>       at 
> org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmStore.dropAliasIndices(JdbmStore.java:822)
>       at 
> org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmStore.delete(JdbmStore.java:1098)
>       at 
> org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition.delete(JdbmPartition.java:487)
>       at 
> org.apache.directory.server.core.partition.impl.btree.BTreePartition.delete(BTreePartition.java:217)
>       at 
> org.apache.directory.server.core.partition.DefaultPartitionNexus.delete(DefaultPartitionNexus.java:824)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to