Dojo xhrGet with sync:false issue with xe:viewJson

2019-09-05 03:19发布

问题:

Since we upgraded our development servers from Domino 8.5.3 to 8.5.3 FP1 we encounter a very strange problem. We use the xe:viewJsonLegacyService to ouput the view contents in json format and dojo xhrGet with param sync:false. This way we are able to fire multiple requests at once to the xe:viewJsonLegacyService xagent page and process them when the request is done.

After Lotus Domino FP1 the sync:false is not usable anymore, if we fire three simultaneous requests it will return error 500 for two requests and success on one request (every time). I created an example database which shows you what goes wrong. But I'm not sure this is because of a problem in the Extension Library or Xpages.

Maybe someone have experience with this and maybe a workaround?

I created a sample application for download here where I demostrate the issue. It will fail on a Domino 8.5.3 SP1/SP2 installation but not on a Domino 8.5.3 installation. It requires the Extension Library.

Edit: this is the stacktrace that returns from the server java.lang.NullPointerException com.ibm.xsp.webapp.FacesServlet.acquireSyncToken(FacesServlet.java:285) com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:161) com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160) com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138) com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103) com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576) com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1281) com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:847) com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796) com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565) com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1265) com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:653) com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:476) com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:341) com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:297) com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)

I have opened up a PMR at IBM. This will also happen when you upgrade from Domino 8.5.3 UP1 to FP1+.

回答1:

Just want to confirm that this works on IBM Domino 9.0 and IBM XWork Server 9.0.

So if you experience this issue, then consider upgrading to 9.0.



回答2:

I've gone throught the PMR process and IBM has indentified this as an reproducable issue. They could not tell me if and when this will be fixed but it could be in the next maintenance release or fixpack.

The current workaround is to deinstall FP1 or FP2 using the FP installation application.



回答3:

Same problem here, my workaround is to put as much as I can into the applicationScope so that one request will be returned very fast. This way, if I make two requests in a short time, the chance to get this error is lowered... But it can still occur, so I'm not happy with that :(