-
Bug
-
Resolution: Fixed
-
P4
-
9
-
None
-
b76
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8136012 | emb-9 | Prasanta Sadhukhan | P4 | Resolved | Fixed | team |
In ./jdk/src/java.desktop/share/classes/sun/java2d/Disposer.java, in the function pollRemove, there is a loop with the following test:
while ((obj = queue.poll()) != null
&& freed < 10000 && deferred < 100) {
If obj != null but freed or deferred exceed the indicated bounds, obj just gets dropped, without having its dispose function called.
The bound checks for freed and deferred should be performed *before* polling the queue.
while ((obj = queue.poll()) != null
&& freed < 10000 && deferred < 100) {
If obj != null but freed or deferred exceed the indicated bounds, obj just gets dropped, without having its dispose function called.
The bound checks for freed and deferred should be performed *before* polling the queue.
- backported by
-
JDK-8136012 Disposer.pollRemove may fail to dispose
-
- Resolved
-