-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Overview
Dialog validation is being triggered directly on EDT from callbacks without proper modality state, potentially causing freezes.
Location
File: intellij-plugin/hs-core/src/org/hyperskill/academy/learning/newproject/ui/BrowseCoursesDialog.kt
Lines: 45-67
Problems
- Line 47:
panel.doValidation()is called directly on EDT frompluginLoadedcallback - this could trigger heavy operations - Line 59:
panel.doValidation()is called on EDT from notification listener without proper modality state - TODO comment on lines 60-63 indicates there's a known IDE freeze issue when installing/uninstalling plugins
What needs to be fixed
- Investigate what
panel.doValidation()does and move heavy operations to background - Use proper modality state for
invokeLatercalls (line 51 has it, line 59 doesn't) - Add progress indicators for long-running validation
- Consider debouncing validation calls to prevent multiple rapid invocations
- Fix the TODO about IDE freezes during plugin install/uninstall
Tests understanding of
- Dialog lifecycle and EDT requirements
ApplicationManager.getApplication().invokeLater()with modality states- Progress indicators for background operations
- Plugin lifecycle events
- Debouncing/throttling UI updates
Validation
- Install/uninstall plugins while dialog is open
- Ensure no freezes occur
- Verify validation still works correctly
- Test with slow network/API responses
Estimated time
3-4 hours
Metadata
Metadata
Assignees
Labels
No labels