Durante l'utilizzo di WebEngine
in JavaFX2, ho notato che a volte rimane bloccato. Supponiamo che stavo facendo un crawler che trova semplicemente i collegamenti ipertestuali su una pagina e poi li visita per fare lo stesso in modo ricorsivo, tenendo traccia di quali link abbiamo visitato e quali sono già sulla frontiera. Durante l'esecuzione del mio codice, l'esecuzione a volte si blocca in momenti arbitrari.JavaFX WebEngine bloccato nello stato "In esecuzione"
ho aggiunto un po 'di codice di debug al mio progetto, sotto forma di ascoltatori al workDoneProperty
e exceptionProperty
e stampando ogni transizione del loadWorker
s' stateProperty
. Poi ho notato che a volte il motore si fermava a metà caricamento di un URL (lo stato è bloccato in RUNNING
e non ci sono più aggiornamenti workDone
). Suppongo che questo sia dovuto a un timeout o qualcosa del genere, ma ho smesso di aspettare per vedere se è davvero un timeout dopo 5 minuti.
Il exceptionProperty
non sembra generare eventi né il passaggio in webEngine
FAILED
o CANCELLED
, si ferma solo. Mi chiedo se questa è potenzialmente una condizione di competizione in biblioteca o forse c'è qualcosa che mi manca ... Qualcuno ha incontrato questo che sa come può essere risolto? E 'molto importante per la mia app che il motore non si ferma randomnly ...
EDIT: aggiunto uscita dalla mia console:
Work done: -1
Engine Load Worker transitioning into state: READY
Work done: 0
Engine Load Worker transitioning into state: SCHEDULED
Engine Load Worker transitioning into state: RUNNING
Work done: 21
Work done: 24
Work done: 24
Work done: 57
Work done: 72
BUILD STOPPED (total time: 9 minutes 32 seconds)