- I’m testing an XPage application that does locking and supports multiple user with dynamic access controls, just like the Notes version does. I do the following:
-
Open the same document in read mode with two different users.
-
Edit the document with one user and update it such that the other user no longer has access to it.
-
Save the updates, excluding the other user. This excluded user has the document open on a XPage in read mode.
-
Click “Edit” on the XPage. I get a runtime error that the document has been deleted.
-
The document has not been deleted, it’s simply no longer accessible to that user. This is a serious issue for a concurrent access web site; the SSJS checks access & locking before allowing edit … that code should be allowed to do its job instead of the user seeing an ugly runtime exception.
-
I don’t care if it’s fixed in R8.5.2. We are trying to roll it out this week and we can’t switch versions this close to deployment. I’m thinking I should open a PMR for this, but barring a hotfix, which I already have HF472 installed, is a PMR really going to help me?
Thanks for your time…
Exception
Error: Domino Document has been deleted.
▼ Stack Trace
javax.faces.FacesException: Error: Domino Document has been deleted.
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)
com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:243)
com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:179)
com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:187)
com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:138)
com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:131)
com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:85)
com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:464)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:703)
com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:730)
com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:684)
com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:453)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:687)
com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:247)
com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:259)
com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:216)
com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:279)
com.ibm.xsp.FacesExceptionEx: Error: Domino Document has been deleted.
com.ibm.xsp.model.domino.wrapped.DominoDocument.restoreWrappedDocument(DominoDocument.java:385)
com.ibm.xsp.model.domino.DominoDocumentDataContainer.getDocument(DominoDocumentDataContainer.java:81)
com.ibm.xsp.model.domino.DominoDocumentData.getDataObject(DominoDocumentData.java:109)
com.ibm.xsp.model.AbstractDataSource.pushData(AbstractDataSource.java:560)
com.ibm.xsp.util.DataUtil.putData(DataUtil.java:121)
com.ibm.xsp.util.DataUtil.putData(DataUtil.java:56)
com.ibm.xsp.component.UIViewRootEx.processDecodes(UIViewRootEx.java:1101)
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:98)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)
com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:243)
com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:179)
com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:187)
com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:138)
com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:131)
com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:85)
com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:464)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:703)
com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:730)
com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:684)
com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:453)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:687)
com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:247)
com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:259)
com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:216)
com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:279)