browser - XPages: Notes-Object of type org.openntf.domino.impl.Document is used across threads -
can explain means? don't have clue... not when it's happening. i'd happy supply code, wouldn't know start.
thanks.
more on message:
com.ibm.xsp.exception.evaluationexceptionex: error while executing javascript computed expression error while executing javascript computed expression erreur d'interpréteur de script, ligne=1, colonne=17 : [typeerror] exception lors de l'appel de la méthode notesxspdocument.getitemvaluestring(string) notes-object of type org.openntf.domino.impl.document used across threads! thread: thread[thread-8,5,main] correct thread: thread[thread-11,5,main] notes-object of type org.openntf.domino.impl.document used across threads! thread: thread[thread-8,5,main] correct thread: thread[thread-11,5,main] java.lang.illegalstateexception: notes-object of type org.openntf.domino.impl.document used across threads! thread: thread[thread-8,5,main] correct thread: thread[thread-11,5,main]
the document opens normally. error occurs when open home-made value picker, uses jsonrpcservice control.
and more:
i found place notesxspdocument.getitemvaluestring(string) executed. turned out in datacontext variable without easily. datacontext couldn't reload value dominodocument1 object (beats me why). result: error 500 regarding thread stuff no longer there, got different 1 in exchange.
it occurs when use dojo dialog box, , rpc control.
the new error: error 400 bad request.
caused by: com.ibm.commons.util.io.json.jsonexception: chaîne littérale de classe com.ibm.jscript.types .fbsundefined inconnue @ com.ibm.commons.util.io.json.jsongenerator$generator.outliteral(jsongenerator.java:169) @ com.ibm.commons.util.io.json.jsongenerator$generator.outobject(jsongenerator.java:214)
update (june 16th)
even more info, somewhere else in our code:
<xp:this.rendered><![cdata[#{javascript:dominodocument1.getitemvaluestring("form")=="mprocessus"}]]></xp:this.rendered>
as far can see, same error occurs when saving dominodocument1 , 1 value changed.
update (june 26th)
a virtually identical message produced when using code below (sporadically). happens on line computes iscurrentversion, see arrow.
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom" dojoparseonload="true" dojotheme="true" xmlns:xe="http://www.ibm.com/xsp/coreex"> <xp:this.data> <xp:dominodocument var="dominodocument1" formname="mprocessus"> <xp:this.postopendocument>...</xp:this.postopendocument> <xp:this.querysavedocument>...</xp:this.querysavedocument> <xp:this.postsavedocument>...</xp:this.postsavedocument> </xp:dominodocument> </xp:this.data> <xp:this.resources> ... </xp:this.resources> <xp:this.beforepageload>...</xp:this.beforepageload> <xp:this.afterpageload>...</xp:this.afterpageload> <xp:this.afterrestoreview>...</xp:this.afterrestoreview> <xp:panel style="margin: 0 auto;position:relative" styleclass="fixedwidth" id="document"> <xp:table style="width: 100%" id="documenttable"> <xp:tr> <xp:td style="width:#{javascript:return userdata.getscreenwidth();}px" align="left"> <xe:switchfacet id="switchfacet2"> <xe:this.selectedfacet><![cdata[#{viewscope.buttonsfacet}]]></xe:this.selectedfacet> <xe:this.facets> <xc:ccdocbuttons xp:key="doc" dialogaction="dbaction" dialogmail="dbmail" ismodel="#{javascript:viewscope.ismodel}" iseditable="#{javascript:dominodocument1.iseditable()}" iseditor="#{javascript:viewscope.iseditor}"> --> <xc:this.iscurrentversion><![cdata[#{javascript:dominodocument1.getitemvaluestring("versioncourante")=="true"}]]></xc:this.iscurrentversion> <xc:this.isoriginalversion><![cdata[#{javascript:!dominodocument1.getitemvalueinteger("aaindice")}]]></xc:this.isoriginalversion> </xc:ccdocbuttons> <xc:ccactionbuttons xp:key="action" dialogaction="dbaction" dialogmail="dbmail"></xc:ccactionbuttons> </xe:this.facets> </xe:switchfacet> </xp:td> </xp:tr>
inside ccdocbuttons, iscurrentversion used this:
<xp:image url="/actenregplus.jpg" id="image15" alt="enregistrer comme nouvelle version" title="enregistrer comme nouvelle version" styleclass="clickable"> <xp:this.rendered><![cdata[#{javascript:compositedata.iseditable && !userdata.isreadonly() && compositedata.iscurrentversion && !compositedata.isoriginalversion && !compositedata.ismodel}]]></xp:this.rendered>
this can occur when try , put document in 1 of scopes ( application, session, view or request ). domino objects cannot stored in scope because recycled once page loaded , attempt access object again results in error.
with openntf domino api same things happens error different because tries recreate handle original object detects different thread making request throws error.
i think first thing check see if trying store document in scope , if recode application store unid document , use document again in value picker.
Comments
Post a Comment