JavaFX2でWebEngine
を使用している間に、私は気付いたことがあります。私は単にページ上のハイパーリンクを見つけて、そのリンクを訪問して同じ再帰的に行うクローラを作って、私たちが訪れたリンクと既にフロンティアにいるリンクを追跡していると仮定します。私のコードを実行している間、実行は時々任意の瞬間にハングすることがありました。JavaFX WebEngineが「実行中」の状態になっています
workDoneProperty
とexceptionProperty
のリスナーの形式で、そしてloadWorker
のstateProperty
のすべてのトランジションを印刷することで、プロジェクトにデバッグコードを追加しました。その後、エンジンがURLの途中でロードを停止することがあることに気付きました(状態はRUNNING
に固執しており、それ以上の更新はありません)。私はこれがタイムアウトか何かのためだと仮定していますが、実際に5分後にタイムアウトしたかどうかを確認するのをやめました。
exceptionProperty
は、イベントを生成していないようでもなく、FAILED
またはCANCELLED
に移行しても、それは停止しません。私はこれが潜在的に図書館の競合状態になっているのか、それとも私が見逃しているものがあるのだろうかと疑問に思っています...これがどのように修正できるのか分かっている人は誰ですか?私のコンソールからの追加出力:それは私のエンジンがちょうどrandomnly停止しないアプリ...
EDITのために非常に重要です私は同じ問題が発生しました
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)