You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2013/06/13 09:28:21 UTC

[jira] [Reopened] (DIRSERVER-1853) NPE in getChildCount() when reverting in an AVL partition

     [ https://issues.apache.org/jira/browse/DIRSERVER-1853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Lecharny reopened DIRSERVER-1853:
------------------------------------------

    
> NPE in getChildCount() when reverting in an AVL partition
> ---------------------------------------------------------
>
>                 Key: DIRSERVER-1853
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1853
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 2.0.0-M12
>            Reporter: Piotr Kubowicz
>
> Stacktrace:
> org.apache.directory.api.ldap.model.exception.LdapOperationException
>         at org.apache.directory.server.core.DefaultDirectoryService.revert(DefaultDirectoryService.java:1177)
> Caused by: org.apache.directory.api.ldap.model.exception.LdapOperationErrorException
>         at org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition.getChildCount(AbstractBTreePartition.java:2156)
>         at org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition.delete(AbstractBTreePartition.java:825)
>         at org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.delete(DefaultPartitionNexus.java:441)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor$1.delete(BaseInterceptor.java:185)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.journal.JournalInterceptor.delete(JournalInterceptor.java:181)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.changelog.ChangeLogInterceptor.delete(ChangeLogInterceptor.java:161)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.trigger.TriggerInterceptor.delete(TriggerInterceptor.java:336)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.event.EventInterceptor.delete(EventInterceptor.java:244)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.subtree.SubentryInterceptor.delete(SubentryInterceptor.java:1055)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.operational.OperationalAttributeInterceptor.delete(OperationalAttributeInterceptor.java:482)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.exception.ExceptionInterceptor.delete(ExceptionInterceptor.java:206)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.admin.AdministrativePointInterceptor.delete(AdministrativePointInterceptor.java:1261)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor.delete(DefaultAuthorizationInterceptor.java:225)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.authz.AciAuthorizationInterceptor.delete(AciAuthorizationInterceptor.java:664)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.referral.ReferralInterceptor.delete(ReferralInterceptor.java:288)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.authn.AuthenticationInterceptor.delete(AuthenticationInterceptor.java:737)
>         at org.apache.directory.server.core.api.interceptor.BaseInterceptor.next(BaseInterceptor.java:480)
>         at org.apache.directory.server.core.normalization.NormalizationInterceptor.delete(NormalizationInterceptor.java:170)
>         at org.apache.directory.server.core.DefaultOperationManager.delete(DefaultOperationManager.java:586)
>         at org.apache.directory.server.core.shared.DefaultCoreSession.delete(DefaultCoreSession.java:340)
>         at org.apache.directory.server.core.shared.DefaultCoreSession.delete(DefaultCoreSession.java:325)
>         at org.apache.directory.server.core.DefaultDirectoryService.revert(DefaultDirectoryService.java:1142)
> Caused by: java.lang.NullPointerException
>         at org.apache.directory.server.core.partition.impl.btree.AbstractBTreePartition.getChildCount(AbstractBTreePartition.java:2152)
> Unfortunately, this happens randomly and I don't have clear reproduction steps. I run some unit test on AVL partitions on 2.0.0-M12. The test is like:
> // test setup
> service = new DirectoryServiceBuilder(...).buildService();
> changeLog = new DefaultChangeLog();
> changeLog.setExposed(true);
> changeLog.setEnabled(true);
> changeLog.init(service);
> service.setChangeLog(changeLog);
> service.setShutdownHookEnabled(true);
> builder.buildPartition(...);
> changeLog.tag();
> // test case
> changeLog.tag();
> // some testing
> service.sync();
> service.revert(taggedRevision); // NPE here

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira