Bug 1401568

Summary: Attempt to navigate to REST interface while server is not still started causes NullPointerException in the server.log file
Product: [Other] RHQ Project Reporter: bkramer <bkramer>
Component: REST, Core ServerAssignee: Heiko W. Rupp <hrupp>
Status: NEW --- QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 4.12   
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1401565    

Description bkramer 2016-12-05 15:08:23 UTC
Description of problem:
Attempt to navigate to the REST page (<rhq_server>:7080/rest) while RHQ server is still starting will cause ERROR message and NullPointerException:

**********************************
14:25:06,861 ERROR [org.jboss.as.ejb3] (http-10.33.24.113:7080-1) JBAS014268: Failure in caller transaction.: java.lang.NullPointerException
	at org.rhq.enterprise.server.util.QueryUtility.init(QueryUtility.java:423) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.util.QueryUtility.getEscapeClause(QueryUtility.java:388) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.util.CriteriaQueryGenerator.getQueryString(CriteriaQueryGenerator.java:601) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.util.CriteriaQueryGenerator.getQuery(CriteriaQueryGenerator.java:924) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.util.CriteriaQueryRunner.execute(CriteriaQueryRunner.java:79) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.auth.SubjectManagerBean.findSubjectsByCriteria(SubjectManagerBean.java:887) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.auth.SubjectManagerBean.getSubjectByName(SubjectManagerBean.java:315) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
...
	at org.rhq.enterprise.server.authz.RequiredPermissionsInterceptor.checkRequiredPermissions(RequiredPermissionsInterceptor.java:156) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
...
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:168) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:561) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:543) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:128) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
...
	at org.rhq.enterprise.rest.JsonPFilter.doFilter(JsonPFilter.java:97)
...
14:25:06,866 ERROR [org.jboss.as.ejb3.invocation] (http-10.33.24.113:7080-1) JBAS014134: EJB Invocation failed on component SubjectManagerBean for method public abstract org.rhq.core.domain.auth.Subject org.rhq.enterprise.server.auth.SubjectManagerRemote.getSubjectByName(java.lang.String): javax.ejb.EJBTransactionRolledbackException
...
	at org.rhq.enterprise.server.auth.SubjectManagerLocal$$$view128.getSubjectByName(Unknown Source) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.rest.SetCallerInterceptor.setCaller(SetCallerInterceptor.java:76) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
...
	at org.rhq.enterprise.server.authz.RequiredPermissionsInterceptor.checkRequiredPermissions(RequiredPermissionsInterceptor.java:156) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
...
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:168) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:561) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:543) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:128) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.13.Final-redhat-1.jar:]
...
Caused by: java.lang.NullPointerException
	at org.rhq.enterprise.server.util.QueryUtility.init(QueryUtility.java:423) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.util.QueryUtility.getEscapeClause(QueryUtility.java:388) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.util.CriteriaQueryGenerator.getQueryString(CriteriaQueryGenerator.java:601) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.util.CriteriaQueryGenerator.getQuery(CriteriaQueryGenerator.java:924) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.util.CriteriaQueryRunner.execute(CriteriaQueryRunner.java:79) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.auth.SubjectManagerBean.findSubjectsByCriteria(SubjectManagerBean.java:887) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
	at org.rhq.enterprise.server.auth.SubjectManagerBean.getSubjectByName(SubjectManagerBean.java:315) [rhq-server.jar:4.12.0.JON330GA-redhat-6]
...
**********************************

Version-Release number of selected component (if applicable):
RHQ 4.12

How reproducible:
Always

Steps to Reproduce:
1. Stop RHQ Server;
2. Start RHQ Server and monitor RHQ server.log file;
3. As soon as the following line is logged:

********************************************
INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.4.8.GA (AS 7.5.8.Final-redhat-2) started in 15970ms - Started 6078 of 6120 services (115 services are lazy, passive or on-demand)
********************************************

attempt to navigate to <rhq_server>:7080/rest page;

Actual results:
Above error messages will be logged

Expected results:
No error message is logged but only INFO or WARN that should let users know that they are trying to use REST before the server is actually up.


Additional info: