This ClassCastException problem went away after Ersin Er's commit
378449, but seems to be back again after I updated today (although no
recent commits seem to touch the problem classes). Now when I run the
vanilla UberJarMain I get the following stacktrace:
org.apache.directory.server.core.interceptor.InterceptorException:
Unexpected exception. [Root exception is java.lang.ClassCastException]
at
org.apache.directory.server.core.interceptor.InterceptorChain.throwInterceptorException(InterceptorChain.java:1504)
at
org.apache.directory.server.core.interceptor.InterceptorChain.access$700(InterceptorChain.java:49)
at
org.apache.directory.server.core.interceptor.InterceptorChain$2.hasEntry(InterceptorChain.java:1328)
at
org.apache.directory.server.core.interceptor.BaseInterceptor.hasEntry(BaseInterceptor.java:131)
at
org.apache.directory.server.core.interceptor.InterceptorChain$2.hasEntry(InterceptorChain.java:1320)
at
org.apache.directory.server.core.authn.AuthenticationService.hasEntry(AuthenticationService.java:252)
at
org.apache.directory.server.core.interceptor.InterceptorChain$2.hasEntry(InterceptorChain.java:1320)
at
org.apache.directory.server.core.normalization.NormalizationService.hasEntry(NormalizationService.java:187)
at
org.apache.directory.server.core.interceptor.InterceptorChain.hasEntry(InterceptorChain.java:885)
at
org.apache.directory.server.core.partition.DirectoryPartitionNexusProxy.hasEntry(DirectoryPartitionNexusProxy.java:535)
at
org.apache.directory.server.core.partition.DirectoryPartitionNexusProxy.hasEntry(DirectoryPartitionNexusProxy.java:523)
at
org.apache.directory.server.core.jndi.ServerContext.<init>(ServerContext.java:127)
at
org.apache.directory.server.core.jndi.ServerDirContext.<init>(ServerDirContext.java:76)
at
org.apache.directory.server.core.jndi.ServerLdapContext.<init>(ServerLdapContext.java:61)
at
org.apache.directory.server.core.DefaultDirectoryService.getJndiContext(DefaultDirectoryService.java:167)
at
org.apache.directory.server.core.jndi.AbstractContextFactory.getInitialContext(AbstractContextFactory.java:121)
at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:195)
at
javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:80)
at org.apache.directory.server.Service.init(Service.java:93)
at org.apache.directory.server.UberjarMain.main(UberjarMain.java:54)
Caused by: java.lang.ClassCastException
at
org.apache.directory.shared.ldap.name.LdapDN.normalize(LdapDN.java:1222)
at
org.apache.directory.server.core.partition.DirectoryPartitionNexusProxy.lookup(DirectoryPartitionNexusProxy.java:487)
at
org.apache.directory.server.core.authz.AuthorizationService.hasEntry(AuthorizationService.java:571)
at
org.apache.directory.server.core.interceptor.InterceptorChain$2.hasEntry(InterceptorChain.java:1320)
... 20 more
and again it seems like ServerContext.java:127 is ultimately
responsible to passing in an LdapName dn which is eventually coerced
to an LdapDN by the NormalizationService.
I'm running JDK1.4 now and have a vague feeling I may have been
running JDK1.5 while everything was working, so it's possible the
problem relates to the choice of JDK. I'll try a clean build, and then
investigate the JDK possibility if the problem persists.