Bug #54047 MEM LDAP Referral option of Error returns an illegal value error message
Submitted: 27 May 2010 23:12 Modified: 9 Jul 2010 7:35
Reporter: Jonathon Coombes Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Web Severity:S3 (Non-critical)
Version:2.2.0.1705 OS:Any
Assigned to: Mark Matthews CPU Architecture:Any
Tags: LDAP, mem, Merlin, UI

[27 May 2010 23:12] Jonathon Coombes
Description:
Choosing the Error option in the Referral method under LDAP settings in MEM 2.2 generates the error:

Error Message
Illegal value for java.naming.referral property.

With stack trace showing:

Illegal value for java.naming.referral property.
com.sun.jndi.ldap.LdapCtx.setReferralMode(LdapCtx.java:2359)
com.sun.jndi.ldap.LdapCtx.initEnv(LdapCtx.java:2299)
com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:291)
com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:53)
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
javax.naming.InitialContext.init(InitialContext.java:223)
javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:134)
com.mysql.etools.monitor.bo.LdapAuthenticator.open(LdapAuthenticator.java:1395)
com.mysql.etools.monitor.bo.LdapAuthenticator.authenticate(LdapAuthenticator.java:425)
com.mysql.etools.monitor.bo.UserManager.externalAuthenticate(UserManager.java:262)
com.mysql.etools.monitor.bo.UserManager.authenticate(UserManager.java:69)
com.mysql.etools.monitor.bo.UserManager.authenticate(UserManager.java:38)
com.mysql.merlin.ui.actions.DoAuth.executeInner(DoAuth.java:60)
com.mysql.merlin.ui.actions.BaseSubmitAction.exec(BaseSubmitAction.java:51)
com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:2031)
com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:2030)
com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:2014)
com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:2029)
sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.mysql.merlin.ui.interceptors.InitializeInterceptor.intercept(InitializeInterceptor.java:82)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:81)
net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
com.mysql.merlin.server.RequestCounterFilter.doFilter(RequestCounterFilter.java:117)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
com.mysql.merlin.ui.filters.AccessLogFilter.doFilter(AccessLogFilter.java:56)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:637)

How to repeat:
Confirm that you have a working LDAP configuration for MEM and then simply change the Referral setting to Error, log out and try and log in.
[23 Jun 2010 21:17] Enterprise Tools JIRA Robot
Mark Matthews writes: 
Pushed to branches/2.2.
[24 Jun 2010 11:33] Enterprise Tools JIRA Robot
Mark Leith writes: 
Available in build 2.3.0.2016
[7 Jul 2010 20:59] Enterprise Tools JIRA Robot
Andy Bang writes: 
In build 2.2.2.1729.
[8 Jul 2010 3:18] Enterprise Tools JIRA Robot
Marcos Palacios writes: 
Verified fixed in Monitor build 2.2.2.1729.
[9 Jul 2010 7:35] MC Brown
A note has been added to the 2.2.2 changelog: 

        Using the <literal>Error</literal> option for the Referral                                                                                         
        method for LDAP settings generates an error trace.