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:
<?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