1

I have a difficult problem: I always get a Nullpointer exception on my webpace, when I rapidly click on the same link. Or when I reload the page rapidly. This is the error I get:

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)

Question: Can someone explain in detail what this acquireSyncToken does? Maybe then I can find the bug...

In my XPages I use

sessionScope.get(key) // same with applicationScope
sessionScope.put(key, value) // same with applicationScope

a LOT ;) I tried very much, e.g. to wrap my lookups within

synchronize(applicationScope){
// lookups and so on...
}

and stuff like that, but that only made it worse, so I removed the synchronize-stuff...

Environment:

Domino Server 8.5.3 FP1
XPages
testing on modern Browsers like FF, Chrome
MacOS / Win7

Architecture: I have one BIG xPage, where I basically add some CustomControls and due to the current URL embed another XPage. Inside the CustomControls and XPages I have more Custom Controls and I added some Views as Datasources and did the wildest things with "repeat controls" and SSJS inside Computed Fields. The heavy-weight DB-Lookups are cached in the applicationScope.

For more Info, please ask! Thanks in advance!

artgrohe
  • 3,082
  • 2
  • 25
  • 31
  • The method tries to get the current synchronizer (or Déjà vu) token. These prevent duplicate form submission etc. by giving a unique id to the current view state. The token is stored in the sessionScope. The access to this data is syncronized; if you are accessing the sessionScope too much without syncronized access, maybe the server has problems with serializing/deserializing?!? Which persistance mode are you using in your application? – Sven Hasselbach Sep 24 '12 at 19:18
  • I chosed "Keep pages in memory(best performance)". Not sure if this answers your question :) I use the sessionScope very very much and always without synchronized-blocks. As I wrote I encountered that the synchronized made the page loading longer and did not solve the NullPointer... – artgrohe Sep 27 '12 at 14:11

1 Answers1

0

This is a known issue. IBM advises to downgrade from FP1 or FP2 to 8.5.3 or UP1.

See Dojo xhrGet with sync:false issue with xe:viewJsonLegacyService and Domino 8.5.3 SP1 or http://www-01.ibm.com/support/docview.wss?uid=swg1LO71603

Community
  • 1
  • 1
Thimo Jansen
  • 485
  • 2
  • 15
  • thanks for the info! Unfortunately I have less then 15 rep so I cant vote up your answer. Shit happens.... – artgrohe Oct 25 '12 at 13:55