SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 54340: A ValidationState exception occurs when multiple users edit the same Questionnaire-based Assessment

DetailsHotfixAboutRate It

In SAS® Enterprise GRC, a validation-state exception similar to the following can occur when multiple users work with a Questionnaire-based Assessment at the same time:

2013-12-17 02:50:36,934 [http-0.0.0.0-8180-3] ERROR [] com.sas.oprisk.monitor.web.ErrorServlet-
   javax.servlet.ServletException: com.sas.oprisk.framework.server.persistence.
   StaleSaveException: The prior AssessmentAnswerSheet is no longer available to replace.
	at com.sas.oprisk.monitor.web.csa.actions.QuestionnaireAction.validate
   (QuestionnaireAction.java:447)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
	at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
	at org.apache.struts.action.RequestProcessor.processActionPerform
   (RequestProcessor.java:425)
	at com.sas.oprisk.monitor.web.MonitorStrutsRequestProcessor.processActionPerform
   (MonitorStrutsRequestProcessor.java:90)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	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 com.sas.fsd.shared.web.filters.FilterGroup.doFinalFilter(FilterGroup.java:85)
	at com.sas.oprisk.monitor.web.AppFilter.doFinalFilter(AppFilter.java:74)
	at com.sas.fsd.shared.web.filters.FilterGroup$FilterGroupChain.doFilter
   (FilterGroup.java:134)
	at com.sas.svcs.webapp.servlet.filters.ThemeSupportFilter.onDoFilter
   (ThemeSupportFilter.java:177)
	at com.sas.framework.webapp.servlet.OncePerRequestFilter.doFilter
   (OncePerRequestFilter.java:66)
	at com.sas.fsd.shared.web.filters.FilterGroup$FilterGroupChain.doFilter
   (FilterGroup.java:130)
	at com.sas.svcs.webapp.servlet.filters.LocaleFilter.onDoFilter(LocaleFilter.java:72)
	at com.sas.framework.webapp.servlet.OncePerRequestFilter.doFilter
   (OncePerRequestFilter.java:66)
	at com.sas.fsd.shared.web.filters.FilterGroup$FilterGroupChain.doFilter
   (FilterGroup.java:130)
	at com.sas.svcs.webapp.servlet.filters.LocalPlatformServicesFilter.onDoFilter
   (LocalPlatformServicesFilter.java:109)
	at com.sas.framework.webapp.servlet.OncePerRequestFilter.doFilter
   (OncePerRequestFilter.java:66)
	at com.sas.fsd.shared.web.filters.FilterGroup$FilterGroupChain.doFilter
   (FilterGroup.java:130)
	at com.sas.svcs.webapp.servlet.filters.PlatformServicesFilter.onDoFilter
   (PlatformServicesFilter.java:148)
	at com.sas.framework.webapp.servlet.OncePerRequestFilter.doFilter
   (OncePerRequestFilter.java:66)
	at com.sas.fsd.shared.web.filters.FilterGroup$FilterGroupChain.doFilter
   (FilterGroup.java:130)
	at com.sas.oprisk.monitor.web.filters.PostSecurityFilter.doFilter
   (PostSecurityFilter.java:39)
	at com.sas.fsd.shared.web.filters.FilterGroup$FilterGroupChain.doFilter
   (FilterGroup.java:130)
	at com.sas.svcs.webapp.servlet.filters.SecurityFilter.onDoFilter(SecurityFilter.java:212)
	at com.sas.framework.webapp.servlet.OncePerRequestFilter.doFilter   
   (OncePerRequestFilter.java:66)
      . . .more message lines. . .
      
   Caused by: com.sas.oprisk.framework.server.persistence.StaleSaveException: The prior 
   AssessmentAnswerSheet is no longer available to replace.
	at com.sas.oprisk.server.base.BaseAssessmentAnswerSheetImpl.save
   (BaseAssessmentAnswerSheetImpl.java:4884)
	at com.sas.oprisk.server.base.BaseAssessmentAnswerSheetImpl.doSave
   (BaseAssessmentAnswerSheetImpl.java:4746)
	at com.sas.oprisk.server.behavior.ValidatableBusinessObjectImpl.validate
   (ValidatableBusinessObjectImpl.java:1040)
	at com.sas.oprisk.server.behavior.ValidatableBusinessObjectImpl.validate
   (ValidatableBusinessObjectImpl.java:1033)
	at com.sas.oprisk.monitor.web.csa.actions.QuestionnaireAction.validate
   (QuestionnaireAction.java:436)

This problem occurs in scenarios similar to the following:

  1. User A creates the Questionnaire-based Assessment and sends it to assessors.
  2. User B opens the assessment enters the scores.
  3. User B submits the assessment for validation.
  4. User A opens the assessment for validation.
  5. At the same time, user B opens the assessment again, updates it, and saves it.
  6. User A rejects the assessment and receives the http 500 ValidationState exception on her display, along with the error above that appears in the log.

In this scenario, the assessment is actually rejected and is returned to user B.

Click the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Enterprise GRCMicrosoft® Windows® for x645.1_M59.3 TS1M2
Microsoft Windows 8 Enterprise 32-bit5.1_M59.3 TS1M2
Microsoft Windows 8 Enterprise x645.1_M59.3 TS1M2
Microsoft Windows 8 Pro 32-bit5.1_M59.3 TS1M2
Microsoft Windows 8 Pro x645.1_M59.3 TS1M2
Microsoft Windows 8.1 Enterprise 32-bit5.1_M59.3 TS1M2
Microsoft Windows 8.1 Enterprise x645.1_M59.3 TS1M2
Microsoft Windows 8.1 Pro5.1_M59.3 TS1M2
Microsoft Windows 8.1 Pro 32-bit5.1_M59.3 TS1M2
Microsoft Windows Server 2003 Datacenter Edition5.1_M59.3 TS1M2
Microsoft Windows Server 2003 Enterprise Edition5.1_M59.3 TS1M2
Microsoft Windows Server 2003 Standard Edition5.1_M59.3 TS1M2
Microsoft Windows Server 2003 for x645.1_M59.3 TS1M2
Microsoft Windows Server 20085.1_M59.3 TS1M2
Microsoft Windows Server 2008 R25.1_M59.3 TS1M2
Microsoft Windows Server 2008 for x645.1_M59.3 TS1M2
Microsoft Windows Server 2012 Datacenter5.1_M59.3 TS1M2
Microsoft Windows Server 2012 R2 Datacenter5.1_M59.3 TS1M2
Microsoft Windows Server 2012 R2 Std5.1_M59.3 TS1M2
Microsoft Windows Server 2012 Std5.1_M59.3 TS1M2
Microsoft Windows XP Professional5.1_M59.3 TS1M2
Windows 7 Enterprise 32 bit5.1_M59.3 TS1M2
Windows 7 Enterprise x645.1_M59.3 TS1M2
Windows 7 Home Premium 32 bit5.1_M59.3 TS1M2
Windows 7 Home Premium x645.1_M59.3 TS1M2
Windows 7 Professional 32 bit5.1_M59.3 TS1M2
Windows 7 Professional x645.1_M59.3 TS1M2
Windows 7 Ultimate 32 bit5.1_M59.3 TS1M2
Windows 7 Ultimate x645.1_M59.3 TS1M2
Windows Vista5.1_M59.3 TS1M2
Windows Vista for x645.1_M59.3 TS1M2
64-bit Enabled AIX5.1_M59.3 TS1M2
64-bit Enabled Solaris5.1_M59.3 TS1M2
HP-UX IPF5.1_M59.3 TS1M2
Linux for x645.1_M59.3 TS1M2
Solaris for x645.1_M59.3 TS1M2
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.