I am using a WebView inside a JFXPanel inside an Applet in Sandbox mode.
When reloading the Website & Applet (without killing the VM) the QuantumRenderer throws an exception and shuts down operation.
Steps to reproduce the problem:
1. Load the Applet in Website in Sandbox mode (not sure if Sandbox mode is relevant)
2. See your HTML page working
3. Open the java console for the applet
4. Reload the page and make sure the applet is loaded again before the JVM shuts down. You can see this when the JVM console window stays open during/after the reload.
5. Look at your WebView content again.
6. Result: The Webview stays empty / is not being painted.
Exception:
QuantumRenderer-0 uncaught: java.lang.IllegalMonitorStateException
java.lang.IllegalMonitorStateException
at java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(Unknown Source)
at java.util.concurrent.locks.ReentrantLock.unlock(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I believe that the problem is as follows:
- The reload causes the exception posted above.
- This kills/damages the QuantumRenderer thread
- The thread does not recover from this
- And thus does nothing work anymore after the reload
When reloading the Website & Applet (without killing the VM) the QuantumRenderer throws an exception and shuts down operation.
Steps to reproduce the problem:
1. Load the Applet in Website in Sandbox mode (not sure if Sandbox mode is relevant)
2. See your HTML page working
3. Open the java console for the applet
4. Reload the page and make sure the applet is loaded again before the JVM shuts down. You can see this when the JVM console window stays open during/after the reload.
5. Look at your WebView content again.
6. Result: The Webview stays empty / is not being painted.
Exception:
QuantumRenderer-0 uncaught: java.lang.IllegalMonitorStateException
java.lang.IllegalMonitorStateException
at java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(Unknown Source)
at java.util.concurrent.locks.ReentrantLock.unlock(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I believe that the problem is as follows:
- The reload causes the exception posted above.
- This kills/damages the QuantumRenderer thread
- The thread does not recover from this
- And thus does nothing work anymore after the reload