Bug 39603

Summary: admin application does not display contexts under host when in a Tomcat cluster
Product: Tomcat 5 Reporter: Tim Lucia <timlucia>
Component: Webapps:AdministrationAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 5.5.20   
Target Milestone: ---   
Hardware: All   
OS: All   
Attachments: Patch that fixes this bug

Description Tim Lucia 2006-05-17 19:24:29 UTC
If I deploy a war file manually across multiple clustered servers, and then look
at the admin application, I see:

+ Tomcat Server
  + Service (Catalina)
    + Host (localhost)
      + Context (/mywebapp)
      + Context (/manager)
      + Context (/admin)
.
.
.



However, if I deploy using the farm deployer, I do not see any applications
under the Host node (except for the default / in a brand-new tomcat install. ) 

This is on RHEL V.4, Tomcat 5.5.12, in a three-way cluster.  Same
environment (QA) without farm deployment shows the app just fine.  It also
reproduces on 5.5.17 on RHEL, and on Windows XP.


Occasionally, the following exception appears in catalina.out:
javax.management.AttributeNotFoundException:  Cannot find attribute className
        at
org.apache.commons.modeler.BaseModelMBean.getAttribute(BaseModelMBean.java:306)
        at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.getAttribute(DynamicMetaDataImpl.java:96)
        at com.sun.jmx.mbeanserver.MetaDataImpl.getAttribute(MetaDataImpl.java:181)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:638)
        at
com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:659)
        at org.apache.webapp.admin.Lists.getValves(Lists.java:401)
        at org.apache.webapp.admin.Lists.getValves(Lists.java:452)
        at
org.apache.webapp.admin.TomcatTreeBuilder.getValves(TomcatTreeBuilder.java:462)
        at
org.apache.webapp.admin.TomcatTreeBuilder.getContexts(TomcatTreeBuilder.java:310)
        at
org.apache.webapp.admin.TomcatTreeBuilder.getHosts(TomcatTreeBuilder.java:263)
        at
org.apache.webapp.admin.TomcatTreeBuilder.getServices(TomcatTreeBuilder.java:185)
        at
org.apache.webapp.admin.TomcatTreeBuilder.getServers(TomcatTreeBuilder.java:144)
        at
org.apache.webapp.admin.TomcatTreeBuilder.buildTree(TomcatTreeBuilder.java:101)
        at org.apache.webapp.admin.SetUpTreeAction.execute(SetUpTreeAction.java:125)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:412)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.webapp.admin.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:123)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:514)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at
org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:247)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)





Reference:

http://mail-archives.apache.org/mod_mbox/tomcat-users/200604.mbox/%3C00b501c6599b$cc8db600$3a0119ac@tim%3E
http://mail-archives.apache.org/mod_mbox/tomcat-users/200605.mbox/%3c00e101c673a3$b0899d30$3c0119ac@timlap%3e
Comment 1 Yoav Shapira 2006-12-25 05:09:24 UTC
Tim, can I ask you to please try on Tomcat 5.5.20?  If nothing else, that would
help us prioritize our work, as 5.0.16 is quite an old release and the 5.0
branch isn't receiving much active work these days.
Comment 2 Tim Lucia 2006-12-27 07:39:10 UTC
Behavior still exists in clustered 5.5.20 -- does not need to be farm deployed,
as it turns out.  In a cluster, only the / app is revealed, while in a single
instance of tomcat, /manager and all other apps appear.

Tim
12/27/2006
Comment 3 Yoav Shapira 2007-03-25 13:53:59 UTC
Updating version to 5.5.20.  Thanks Tim.
Comment 4 Mark Thomas 2009-07-09 06:51:11 UTC
Created attachment 23950 [details]
Patch that fixes this bug

Still affects 5.5.x. Patch attached that fixes this.
Comment 5 Mark Thomas 2009-07-10 03:32:47 UTC
This has been fixed in 5.5.x and will be included in 5.5.28 onwards.