Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: pram am 05.07.12 - 16:51:33

Titel: Parallele Anfragen führen zu "unerwarteter Laufzeitfehler"
Beitrag von: pram am 05.07.12 - 16:51:33
Hallo, ich habe folgendes Problem, dass ich Buttons in der Anwendung habe, die mal "etwas Zeit" brauchen.
Wenn ich nun die gleiche XPage 2x offen habe und schnell hintereinander auf die Aktionen klicke, dann laufen beide Aktionen auch parallel ab, allerdings bekommen ich einen Fehler, wenn die letzte fertig ist

Habe hier ein Beispiel konstruiert, mit dem man den Fehler nachstellen kann:
Code
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:button value="testFunc" id="button1">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action><![CDATA[#{javascript:for (j = 1; j < 10; j++) {
print("Counter: " + j)
for (i = 1; i < 5000000; i++) {}
}}]]></xp:this.action>
	</xp:eventHandler></xp:button></xp:view>

Wenn man die XPage nun 2x im Browser geöffnet hat und relativ schnell hintereinander auf die Buttons klickt, startet man jeweils einen Zähler.
Beim Ende des zweiten Durchlaufs bekomme ich dann folge Fehlermeldung:

Unerwarteter Laufzeitfehler
Die Laufzeit stieß auf einen unerwarteten Fehler.
javax.faces.FacesException
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:102)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)
....
java.lang.NullPointerException
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:317)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:428)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:94)


Gruß
Roland