History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: RHQ-169
Type: Sub-bug Sub-bug
Status: Accepted Accepted
Priority: Major Major
Assignee: Ian Springer
Reporter: Ian Springer
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
RHQ Project
RHQ-692

stale template name in session scope causes clicking on Create Resource button to fail with "IllegalStateException: A template named 'XXX' does not exist for ResourceType YYY" error

Created: 20/Mar/08 05:04 PM   Updated: 13/Oct/08 03:37 PM
Component/s: FX - Inventory, Core UI
Affects Version/s: 0.1
Fix Version/s: None

Time Tracking:
Not Specified

Issue Links:
Relation
 

Date of First Response: 02/Apr/08 11:19 AM


 Description  « Hide
To reproduce, go an AS resource's Inventory tab. Choose Datasource from the Create New Child Resource menu and click OK, then choose a template name (e.g. Oracle XA). Now click the browser's Back button a couple times to go back to the Inventory tab without actually creating the Datasource. Now choose some other resource type (e.g. Topic or Queue) from the Create New Child Resource menu and click OK. You will get the following exception:

javax.el.ELException: /rhq/resource/inventory/create-config-2.xhtml @47,117 configuration="#{CreateNewConfigurationChildResourceUIBean.configuration}": Error reading 'configuration' on type org.rhq.enterprise.gui.inventory.resource.CreateNewConfigurationChildResourceUIBean
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
at org.rhq.core.gui.util.FacesExpressionUtility.getValue(FacesExpressionUtility.java:40)
at org.rhq.core.gui.util.FacesComponentUtility.getExpressionAttribute(FacesComponentUtility.java:326)
at org.rhq.core.gui.configuration.ConfigUIComponent.getConfiguration(ConfigUIComponent.java:70)
at org.rhq.core.gui.configuration.ConfigRenderer.encodeBegin(ConfigRenderer.java:102)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:801)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:934)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:825)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.rhq.enterprise.gui.legacy.AuthenticationFilter.doFilter(AuthenticationFilter.java:128)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.rhq.enterprise.gui.common.upload.MultipartFilter.doFilter(MultipartFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.rhq.helpers.rtfilter.filter.RtFilter.doFilter(RtFilter.java:114)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalStateException: A template named 'Oracle XA' does not exist for ResourceType[id=106, category=Service, name=JMS Queue, plugin=JBossAS] resource configurations.
at org.rhq.enterprise.gui.inventory.resource.CreateNewConfigurationChildResourceUIBean.lookupConfiguration(CreateNewConfigurationChildResourceUIBean.java:184)
at org.rhq.enterprise.gui.configuration.AbstractConfigurationUIBean.getConfiguration(AbstractConfigurationUIBean.java:86)
at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:73)
at org.apache.el.parser.AstValue.getValue(AstValue.java:97)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
... 48 more


 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Charles Crouch - 02/Apr/08 11:19 AM
This issue sounds related to "conversation-scope" issues

Joseph Marques - 02/Jul/08 04:30 AM
setting for 1.1 target for investigation. ian, how easy is it to reproduce this? off the top of my head i would guess that a single user, within the same login session, must attempt to manually create resources of two different types. is that it, or can it be reproduced even more simply?

Ian Springer - 02/Jul/08 03:42 PM
Charles, yep, it's yet another issue caused by the fact that we use session scope to store Configurations being edited. The best solution will come once we switch over to Seam and start utilizing conversation scope. I haven't looked into whether there's an easy workaround that can be done in the mean time.

Joseph, yep, reproducing is pretty easy - just follow the instructions in this issue's Description.

Joseph Marques - 07/Jul/08 07:23 PM
another issue of session-scoped staleness, pushing to 1.2 for proper fix via conversational-level caching.