Bug 534953 (RHQ-169)

Summary: 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
Product: [Other] RHQ Project Reporter: Ian Springer <ian.springer>
Component: InventoryAssignee: Lukas Krejci <lkrejci>
Status: CLOSED NEXTRELEASE QA Contact: Jeff Weiss <jweiss>
Severity: medium Docs Contact:
Priority: medium    
Version: 0.1CC: ccrouch, dajohnso
Target Milestone: ---Keywords: SubBug
Target Release: ---   
Hardware: All   
OS: All   
URL: http://jira.rhq-project.org/browse/RHQ-169
Whiteboard:
Fixed In Version: 1.2 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 535213    
Bug Blocks: 536330    

Description Ian Springer 2008-03-20 22:04:00 UTC
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


Comment 1 Charles Crouch 2008-04-02 16:19:34 UTC
This issue sounds related to "conversation-scope" issues

Comment 2 Joseph Marques 2008-07-02 09:30:59 UTC
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?

Comment 3 Ian Springer 2008-07-02 20:42:33 UTC
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.

Comment 4 Joseph Marques 2008-07-08 00:23:45 UTC
another issue of session-scoped staleness, pushing to 1.2 for proper fix via conversational-level caching.

Comment 5 Heiko W. Rupp 2009-04-06 12:42:19 UTC
I think this issue by itself is fixed, but to really test it, RHQ-1933 should be solved first.

Comment 6 Joseph Marques 2009-04-28 09:08:10 UTC
i believe this was resolved with the work done for RHQ-1933

Comment 7 Jeff Weiss 2009-04-28 15:47:21 UTC
I'm pretty sure this no longer occurs.  Will reopen if I see it again.  rev3856

Comment 8 Red Hat Bugzilla 2009-11-10 20:38:37 UTC
This bug was previously known as http://jira.rhq-project.org/browse/RHQ-169
This bug is related to RHQ-220