Comments (8)
I think this is a race condition here:
return (!display.isDisposed()) && (display.getThread() == Thread.currentThread());
so actually the disposed check here is a bit useless when we assume multithreading and maybe better a catch clause is used.
Beside that the check in aboutToRelease
seems strange as it only clears out if the thread is an UI thread, but this is only true if display.getThread() == Thread.currentThread()
so I think this could be simplified to
@Override
public void aboutToRelease() {
if (ui == Thread.currentThread()) {
ui = null;
}
}
from eclipse.platform.ui.
Sure there is a race condition, but the errors I've reported weren't seen in last ~10 years...
from eclipse.platform.ui.
the check in aboutToRelease seems strange as it only clears out if the thread is an UI thread
This is intentionally, it only allows to release if the UI thread does it.
so I think this could be simplified to
Yes, that can be done. PR?
from eclipse.platform.ui.
My main concern here is less the errors mentioned (which should be for sure fixed), but that workbench shutdown behavior seem to be changed now.
If that is "expected", I would like to understand what exactly caused shutdown behavior change and if there are other possible side effects beside errors here (worst case: workbench or workspace states are not properly persisted etc).
from eclipse.platform.ui.
It might be that a Job is running but the test shuts down faster...
from eclipse.platform.ui.
No, that was my main workspace, not a test. Just a regular shutdown in a workspace that I use every day.
from eclipse.platform.ui.
This error is fixed now, but as expected we see now two other issues, unfortunately lacking stack traces:
I will keep this issue open to see what the stack traces added say.
from eclipse.platform.ui.
Haven't seen that after recent changes, let assume we are fine now.
from eclipse.platform.ui.
Related Issues (20)
- WidgetFactories are lacking method "data(String key, Object value)"
- The fix for #1210 breaks image styling on intro pages HOT 6
- Too many unrelated branches pushed to main repository HOT 4
- Expandable node is shown at wrong place, sorting broken after expand
- IAE: Comparison method violates its general contract in org.eclipse.jface.viewers.TreePathViewerSorter HOT 4
- Enable viewer limits by default
- Random failure of SmartImportTests.testConfigurationIgnoreNestedProjects
- [macOS] Closing square bracket display incomplete in "Project Explorer" view HOT 2
- SearchPattern: API Returns an Invalid Match Result HOT 2
- Don't cancel context menu filtering when filling one of them fails
- Improvement in generics
- Random failure of AbstractTreeViewerTest.testContains HOT 2
- Random failure of TableViewerTest.testContains HOT 2
- Toggle buttons with the dark theme on Linux HOT 2
- [Find/Replace]: Line selection is lost when turning it to a search-scope and back
- Tooltips of Tool items do not not show updated key bindings once updated from preferences HOT 2
- Copy text from Console View should remove Ansi Escape codes by default HOT 1
- Added or deleting lines above folded function(s) breaks what has already been folded to its definition (C++) HOT 3
- Supply all the changes from all RefactoringParticipant to RefactoringProcessor in ProcessorBasedRefactoring HOT 1
- SWT layout in Choose Workspace Dialog broken in I20240109-1800 HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eclipse.platform.ui.