Bug 565626
Summary: | RHQ main menu Groups > Search: > searchItem throws error | ||||||
---|---|---|---|---|---|---|---|
Product: | [Other] RHQ Project | Reporter: | John Sefler <jsefler> | ||||
Component: | Core UI | Assignee: | Lukas Krejci <lkrejci> | ||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Corey Welton <cwelton> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | high | ||||||
Version: | 1.4 | CC: | ayoung, cwelton, lkrejci, sdharane | ||||
Target Milestone: | --- | Keywords: | SubBug | ||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | 2.4 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2010-08-12 16:57:48 UTC | 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: | |||||||
Bug Blocks: | 565635 | ||||||
Attachments: |
|
Description
John Sefler
2010-02-15 19:07:56 UTC
Created attachment 394379 [details]
screenshot after clicking on the retrieve search item in the ajaxy pop-up menu
Temporarily adding the keyword "SubBug" so we can be sure we have accounted for all the bugs. keyword: new = Tracking + FutureFeature + SubBug making sure we're not missing any bugs in rhq_triage This is the root cause stack trace: org.postgresql.util.PSQLException: ERROR: syntax error at or near ")" Position: 2489 org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062) org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795) org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479) org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367) org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271) sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.postgresql.ds.jdbc23.AbstractJdbc23PooledConnection$StatementHandler.invoke(AbstractJdbc23PooledConnection.java:455) $Proxy48.executeQuery(Unknown Source) org.jboss.resource.adapter.jdbc.CachedPreparedStatement.executeQuery(CachedPreparedStatement.java:90) org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342) org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:187) org.hibernate.loader.Loader.getResultSet(Loader.java:1787) org.hibernate.loader.Loader.doQuery(Loader.java:674) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) org.hibernate.loader.Loader.doList(Loader.java:2213) org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) org.hibernate.loader.Loader.list(Loader.java:2099) org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289) org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695) org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142) org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152) org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:80) org.rhq.enterprise.server.resource.ResourceManagerBean.disambiguate(ResourceManagerBean.java:2176) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) org.rhq.enterprise.server.common.TransactionInterruptInterceptor.addCheckedActionToTransactionManager(TransactionInterruptInterceptor.java:77) sun.reflect.GeneratedMethodAccessor116.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) org.rhq.enterprise.server.authz.RequiredPermissionsInterceptor.checkRequiredPermissions(RequiredPermissionsInterceptor.java:153) sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:240) org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:210) org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84) $Proxy316.disambiguate(Unknown Source) org.rhq.enterprise.gui.navigation.resource.ResourceSelectUIBean.autocomplete(ResourceSelectUIBean.java:116) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:329) org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:342) org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58) org.jboss.el.parser.AstValue.invoke(AstValue.java:96) org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) org.richfaces.component.UISuggestionBox.setupValue(UISuggestionBox.java:492) org.richfaces.component.UISuggestionBox.broadcast(UISuggestionBox.java:424) javax.faces.component.UIData.broadcast(UIData.java:959) org.richfaces.component.UISuggestionBox.broadcast(UISuggestionBox.java:421) org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324) org.ajax4jsf.component.AjaxViewRoot.broadcastAjaxEvents(AjaxViewRoot.java:343) org.ajax4jsf.application.AjaxViewHandler.processAjaxEvents(AjaxViewHandler.java:216) org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:169) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530) org.rhq.enterprise.gui.legacy.WebUserTrackingFilter.doFilter(WebUserTrackingFilter.java:47) org.rhq.enterprise.gui.legacy.AuthenticationFilter.doFilter(AuthenticationFilter.java:137) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) org.rhq.helpers.rtfilter.filter.RtFilter.doFilter(RtFilter.java:124) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) The exception is triggered by ResourceManagerBean.disambiguate line 2165: the calling line is: Object[] rs = (Object[]) disambiguateQuery.getSingleResult(); And it is trying to execute this sql: SELECT COUNT(r.ID) AS target_cnt, COUNT(DISTINCT(t.name)) AS bare_type_cnt,COUNT(DISTINCT(t.name || '~!@#)))' || t.plugin)) AS full_type_cnt,COUNT(DISTINCT(r.name)) AS l1_cnt,COUNT(DISTINCT(r.name || '~!@#)))' || (CASE WHEN p1.name IS NULL THEN 'null' ELSE p1.name END))) AS l2_cnt,COUNT(DISTINCT(r.name || '~!@#)))' || (CASE WHEN p1.name IS NULL THEN 'null' ELSE p1.name END) || '~!@#)))' || (CASE WHEN p2.name IS NULL THEN 'null' ELSE p2.name END))) AS l3_cnt,COUNT(DISTINCT(r.name || '~!@#)))' || (CASE WHEN p1.name IS NULL THEN 'null' ELSE p1.name END) || '~!@#)))' || (CASE WHEN p2.name IS NULL THEN 'null' ELSE p2.name END) || '~!@#)))' || (CASE WHEN p3.name IS NULL THEN 'null' ELSE p3.name END))) AS l4_cnt,COUNT(DISTINCT(r.name || '~!@#)))' || (CASE WHEN p1.name IS NULL THEN 'null' ELSE p1.name END) || '~!@#)))' || (CASE WHEN p2.name IS NULL THEN 'null' ELSE p2.name END) || '~!@#)))' || (CASE WHEN p3.name IS NULL THEN 'null' ELSE p3.name END) || '~!@#)))' || (CASE WHEN p4.name IS NULL THEN 'null' ELSE p4.name END))) AS l5_cnt,COUNT(DISTINCT(r.name || '~!@#)))' || (CASE WHEN p1.name IS NULL THEN 'null' ELSE p1.name END) || '~!@#)))' || (CASE WHEN p2.name IS NULL THEN 'null' ELSE p2.name END) || '~!@#)))' || (CASE WHEN p3.name IS NULL THEN 'null' ELSE p3.name END) || '~!@#)))' || (CASE WHEN p4.name IS NULL THEN 'null' ELSE p4.name END) || '~!@#)))' || (CASE WHEN p5.name IS NULL THEN 'null' ELSE p5.name END))) AS l6_cnt,COUNT(DISTINCT(r.name || '~!@#)))' || (CASE WHEN p1.name IS NULL THEN 'null' ELSE p1.name END)|| '~!@#)))' || (CASE WHEN p2.name IS NULL THEN 'null' ELSE p2.name END) || '~!@#)))' || (CASE WHEN p3.name IS NULL THEN 'null' ELSE p3.name END) || '~!@#)))' || (CASE WHEN p4.name IS NULL THEN 'null' ELSE p4.name END) || '~!@#)))' || (CASE WHEN p5.name IS NULL THEN 'null' ELSE p5.name END) || '~!@#)))' || (CASE WHEN p6.name IS NULL THEN 'null' ELSE p6.name END))) AS l7_cnt FROM RHQ_RESOURCE AS r JOIN RHQ_RESOURCE_TYPE AS t ON r.RESOURCE_TYPE_ID = t.ID LEFT OUTER JOIN RHQ_RESOURCE AS p1 ON r.PARENT_RESOURCE_ID = p1.ID LEFT OUTER JOIN RHQ_RESOURCE AS p2 ON p1.PARENT_RESOURCE_ID = p2.ID LEFT OUTER JOIN RHQ_RESOURCE AS p3 ON p2.PARENT_RESOURCE_ID = p3.ID LEFT OUTER JOIN RHQ_RESOURCE AS p4 ON p3.PARENT_RESOURCE_ID = p4.ID LEFT OUTER JOIN RHQ_RESOURCE AS p5 ON p4.PARENT_RESOURCE_ID = p5.ID LEFT OUTER JOIN RHQ_RESOURCE AS p6 ON p5.PARENT_RESOURCE_ID = p6.ID WHERE r.ID IN () I think the problem is the final line: IN () is probably improper here. However, I don't think that disambuiguate should be called at all if there are no results returned. I think I have a fix to modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/navigation/resource/ResourceSelectUIBean.java @@ -113,24 +114,27 @@ public class ResourceSelectUIBean { result = resourceManager.findResourceComposites(EnterpriseFacesContextUtility.getSubject(), null, null, null, null, pref, true, pc); + if (result.size() == 0) { + return new ArrayList<DisambiguationReportWrapper>(); + } + return wrap(resourceManager.disambiguate(result, false, RESOURCE_ID_EXTRACTOR)); } - + The above isn't the cause of this bug. Adam rediscovered a bug that should have been fixed in master a while ago (how recent is your build?) but it actually is a completely different problem to what John reported. I think the issue here is that the URL the search results point to is incorrect. Fixed by commit b2f7c0e in master. Saw the erreor in raw config. We merged at the end of last sprint. QA Verified. No longer get stack traces when doing a search for groups; intead, search result can be clicked through. Mass-closure of verified bugs against JON. |