1 Reply Latest reply on Feb 21, 2011 7:54 PM by kragoth

    Issue with components names "manager"

    tomwhitner
      I created a simple Seam application and while trying to debug an issue, I discovered that the debug.seam page was not working.  Requesting it resulted on the following: "HTTP Status 404 - /app-name/debug.seam"  Initially, I verified that I had deployed the necessary JARs and set the debug="true" setting in components.xml.  Everything was in order. 

      Upon reviewing the log file I noted warnings such as this when requesting the debug.seam page:

      *2011-02-21 10:59:40,478 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http-127.0.0.1-8080-1) JSF1053: (Listener: org.jboss.seam.debug.jsf.SeamDebugPhaseListener.beforePhase(), Phase ID: RENDER_RESPONSE 6,  View ID: /debug.xhtml) Exception thrown during phase-listener execution: javax.faces.FacesException: javax.el.PropertyNotFoundException: //C:/jboss-5.1.0.GA/server/default/deploy/applications/booking2.ear/app.war/WEB-INF/lib/jboss-seam-debug.jar/META-INF/debug.xhtml @149,70 rendered="#{manager.longRunningConversation}": Property 'longRunningConversation' not found on type org.javassist.tmp.java.lang.Object_$$_javassist_seam_6*

      It turns out that I had a component named "manager" (@Name("manager")), which conflicts with the Seam "manager" component (org.jboss.seam.core.manager). 

      Has anyone seen this before?  I think this is a bug.  Simply adding the @Name("manager") annotation to a component prevents the debug.seam page from display, and based on the error above, it must have other side effects as well.  Renaming my component immediately allowed the debug.seam page to display.

      After figuring this out, I reviewed the documentation and have not been able to find anything that says, "Don't name your components 'manager'."  Also, there appears to be no warning that one has commandeered the manager object in this case.

      If this is a known issue, please point me to the Jira.  Otherwise, I will open a defect/bug.

      Thanks,
      Tom
        • 1. Re: Issue with components names "manager"
          kragoth

          This is by no means a bug.


          This is just one of many ways you can override default functionality in Seam. Possibly the only problem here is that the doco is not quite clear enough. However, if you read this part of the documentation it tells you all the predefined Seam components. Naming one of your own components the same is going to interfere in some way. Just the same as if you override a method you no longer execute the super classes method unless you call it specifically from the new method.