Currently the susrvey persistence service caches question ids. Ran into an issue where question table was not built out and applications was started. Tables were later populated. When the question id was attempted to be retrieved from the cached mapped it failed with a null pointer exception.
java.lang.NullPointerException
at org.jharks.workflow.survey.engine.dao.impl.SurveyResponseJdbcPersistenceDaoImpl.saveResponseSet(SurveyResponseJdbcPersistenceDaoImpl.java:344)
at org.jharks.workflow.survey.engine.dao.impl.SurveyResponseJdbcPersistenceDaoImpl.saveResponse(SurveyResponseJdbcPersistenceDaoImpl.java:317)
at org.jharks.workflow.survey.engine.dao.impl.SurveyResponseJdbcPersistenceDaoImpl.saveResponses(SurveyResponseJdbcPersistenceDaoImpl.java:291)
at org.jharks.workflow.survey.engine.dao.impl.SurveyResponseJdbcPersistenceDaoImpl.persistSurvey(SurveyResponseJdbcPersistenceDaoImpl.java:208)
at org.jharks.workflow.survey.engine.service.impl.SurveyPersistenceManagerImpl.persistSurvey(SurveyPersistenceManagerImpl.java:53)
at org.jharks.workflow.survey.engine.web.spring.actions.PersistSurveyAction.apply(PersistSurveyAction.java:51)
at org.jharks.workflow.BaseWorkFlowManagerImpl.initState(BaseWorkFlowManagerImpl.java:617)
at org.jharks.workflow.BaseWorkFlowManagerImpl.getNextMapping(BaseWorkFlowManagerImpl.java:156)
at org.jharks.workflow.survey.engine.web.struts.GenericWorkFlowAction.processContinuation(GenericWorkFlowAction.java:301)
at org.jharks.workflow.survey.engine.web.struts.SurveyEngineFrontAction.execute(SurveyEngineFrontAction.java:66)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.chboston.framework.view.filter.CHBPostAuthenticationFilter.doFilter(CHBPostAuthenticationFilter.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.chboston.cas.client.validation.ChbAbstractTicketValidationFilter.doFilter(ChbAbstractTicketValidationFilter.java:178)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.chboston.cas.client.authentication.ChbAuthenticationFilter.doFilter(ChbAuthenticationFilter.java:186)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:104)
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:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:436)
at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:384)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
Anonymous