You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Konrad Windszus (JIRA)" <ji...@apache.org> on 2013/06/12 15:49:20 UTC

[jira] [Commented] (DIRSERVER-1855) java.lang.IllegalStateException: Can't overwrite cause at org.apache.directory.server.core.authz.GroupCache.initialize(GroupCache.java:190)

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

Konrad Windszus commented on DIRSERVER-1855:
--------------------------------------------

The stacktrace posted above is from ApacheDS 2.0M7 but the same issue may occur also in the most recent version, as it still has the same code (although at a different location).
                
> java.lang.IllegalStateException: Can't overwrite cause at org.apache.directory.server.core.authz.GroupCache.initialize(GroupCache.java:190)
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DIRSERVER-1855
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1855
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.0.0-M12
>            Reporter: Konrad Windszus
>            Priority: Critical
>
> We got the following exception stack trace after trying to start ApacheDS from a backup:
> {code}
> 14:37:15] ERROR [org.apache.directory.server.wrapper.ApacheDsTanukiWrapper] - Failed to start the service.
> java.lang.IllegalStateException: Can't overwrite cause
>         at java.lang.Throwable.initCause(Throwable.java:456)
>         at org.apache.directory.server.core.authz.GroupCache.initialize(GroupCache.java:190)
>         at org.apache.directory.server.core.authz.GroupCache.<init>(GroupCache.java:122)
>         at org.apache.directory.server.core.authz.AciAuthorizationInterceptor.init(AciAuthorizationInterceptor.java:295)
>         at org.apache.directory.server.core.DefaultDirectoryService.initInterceptors(DefaultDirectoryService.java:726)
>         at org.apache.directory.server.core.DefaultDirectoryService.initialize(DefaultDirectoryService.java:1863)
>         at org.apache.directory.server.core.DefaultDirectoryService.startup(DefaultDirectoryService.java:1272)
>         at org.apache.directory.server.ApacheDsService.initDirectoryService(ApacheDsService.java:316)
>         at org.apache.directory.server.ApacheDsService.start(ApacheDsService.java:180)
>         at org.apache.directory.server.wrapper.ApacheDsTanukiWrapper.start(ApacheDsTanukiWrapper.java:72)
>         at org.tanukisoftware.wrapper.WrapperManager$12.run(WrapperManager.java:2788)
> {code}
> The problem here really is, that this exception hides the real problem here. I see that even in the trunk you try to set the cause in http://svn.apache.org/repos/asf/directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/GroupCache.java in the initializeMethod. That is not allowed and leads to that exception if the original exception already has a cause set (http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Throwable.html#initCause%28java.lang.Throwable%29). Rather just wrap the original exception and leave out the initCause or at least check first, if the initCause is allowed at that point. Also please remove the e.printStackTrace as it will land in the standard error stream rather than in the log.

--
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