RFR: 8201567: QuantumRenderer modifies buffer in use by JavaFX Application Thread

John Neffenger github.com+1413266+jgneff at openjdk.java.net
Sun Jun 28 02:37:27 UTC 2020


The message from this sender included one or more files
which could not be scanned for virus detection; do not
open these files unless you are certain of the sender's intent.

----------------------------------------------------------------------
On Sat, 27 Jun 2020 15:36:01 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:

>> Fixes [JDK-8201567](https://bugs.openjdk.java.net/browse/JDK-8201567).
>
> modules/javafx.graphics/src/main/java/com/sun/glass/ui/Pixels.java line 194:
> 
>> 193:     public final Buffer getBuffer() {
>> 194:         assert this.bytes != null || this.ints != null;
>> 195:         return this.bytes != null ? this.bytes : this.ints;
> 
> We should not use `assert` statements in the JavaFX runtime. If this is a condition that needs to be checked, then use
> an `if` test and throw an appropriate `RuntimeException` or an `InternalError`.

Thanks, Kevin. I saw `assert` used elsewhere (`EventLoop` in the same package, for example), and thought it was
okay—even preferable—for these "should never occur" checks. Is that a general policy not to use `asserts` anywhere in
JavaFX? Should I also remove the asserts I added to `HeadlessScreen` and `EPDScreen` in lieu of a unit test case?

-------------

PR: https://git.openjdk.java.net/jfx/pull/255


More information about the openjfx-dev mailing list