You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Incident:
In the processing of RAPDragTracker in LightweightSystem of org.eclipse.rap.draw2d/src/org/eclipse/draw2d/LightweightSystem.java, if Canvas is forcibly terminated, processing within RAPDragTracker will loop infinitely.
Cause:
If Canvas is forcibly terminated and display.isDisposed becomes true, there is no timing to exit the while loop.
Code Snippet:
while (tracking && !cancelled) {
if (display != null && !display.isDisposed()) {
display.syncExec(new Runnable() {
public void run() {
if (canvas.isDisposed()) {
tracking = false;
cancelled = true;
return;
}
Event ev = new Event();
//...
}
});
} else {
break;
}
}
Thread Dump:
"Worker-6" #62 prio=5 os_prio=0 tid=0x00007f4dfc2a7800 nid=0x3d42 runnable [0x00007f4dcd14d000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.draw2d.LightweightSystem$RAPDragTracker$1.run(LightweightSystem.java:500)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Proposed Solution:
To avoid an infinite loop, the while loop should be exited if display.isDisposed becomes true.
If display.isDisposed() becomes true, it is possible to avoid an endless loop by exiting the while loop.
Incident:
In the processing of RAPDragTracker in LightweightSystem of org.eclipse.rap.draw2d/src/org/eclipse/draw2d/LightweightSystem.java, if Canvas is forcibly terminated, processing within RAPDragTracker will loop infinitely.
Cause:
If Canvas is forcibly terminated and display.isDisposed becomes true, there is no timing to exit the while loop.
Code Snippet:
Thread Dump:
Proposed Solution:
To avoid an infinite loop, the while loop should be exited if display.isDisposed becomes true.
If display.isDisposed() becomes true, it is possible to avoid an endless loop by exiting the while loop.
The text was updated successfully, but these errors were encountered: