I have encountered very strange behaviour I cant explain but I need to. On the Xpage I have embedded views created using view datasources and corresponding repeaters. Now I find out, that view datasource returns all view entries even those user has not access to due access controls (readers fields) . Inside the repeat control I'm getting NotesXSPViewEntry.getDocument() nullPointer error, because NotesXSPViewEntry returns null for getDocument(). How it is that view datasource returns entries for documents I have no access to?? Whats more this app is in production for a year but we discovered this behaviour just recently seems like after upgrade to 9.01FP3 (from 9.01) . Dev server runs on 9.01 without FP and works correctly. Anybody notices such strange behaviour?
EDIT #1: It's single category view and user has no access to any document in the category. Now when I fix the code inside repeate with NotesXSPViewEntry.getDocument()!=null check I can fix the view this way so xpage renders correctly but after any submit it fails with obscure internal error as following. (I tried even with button with empty action only full submit is checked)
NotesException: A required argument has not been provided
Location:
Code Snippet:
... 64 more at com.ibm.xsp.script.WrapperDominoEx$fct_AbstractDominoViewEntry.call(WrapperDominoEx.java:820) at com.ibm.xsp.model.domino.wrapped.DominoViewEntry.getDocument(DominoViewEntry.java:381) at lotus.domino.local.Database.getDocumentByUNID(Unknown Source) at lotus.domino.local.Database.NgetDocumentByUNID(Native Method)
Caused by: NotesException: A required argument has not been provided
... 48 more at com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:78) at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:194) at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:222) at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234) at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251) at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410) at java.security.AccessController.doPrivileged(AccessController.java:365) at com.ibm.jscript.JSExpression$2.run(JSExpression.java:414) at com.ibm.jscript.JSExpression.access$1(JSExpression.java:424) at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435) at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139) at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119) at com.ibm.jscript.ASTTree.binaryop.ASTBinaryRelAnd.interpret(ASTBinaryRelAnd.java:73) at com.ibm.jscript.ASTTree.binaryop.ASTBinaryDefaultOp.interpret(ASTBinaryDefaultOp.java:49) at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:197) at com.ibm.jscript.types.FBSObject.call(FBSObject.java:161) at com.ibm.xsp.script.WrapperDominoEx$fct_AbstractDominoViewEntry.call(WrapperDominoEx.java:1105)null
Caused by: com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=19: [TypeError] Exception occurred calling method NotesXspViewEntry.getDocument()
... 19 more at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:98) at com.ibm.xsp.component.UIViewRootEx.processDecodes(UIViewRootEx.java:1399) at com.ibm.xsp.component.UIViewRootEx._processDecodes(UIViewRootEx.java:1438) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:343) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIForm.processDecodes(UIForm.java:166) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataIterator.processDecodes(UIDataIterator.java:780) at com.ibm.xsp.component.UIDataPanelBase.isRendered(UIDataPanelBase.java:78) at com.ibm.xsp.component.UIDataPanelBase.isRenderedProp(UIDataPanelBase.java:81) at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:451) at com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:132)