| Summary: | [build path] Internal Error when creating new Java project | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] JDT | Reporter: | Dani Megert <daniel_megert> | ||||||
| Component: | UI | Assignee: | Benno Baumgartner <benno.baumgartner> | ||||||
| Status: | CLOSED FIXED | QA Contact: | |||||||
| Severity: | major | ||||||||
| Priority: | P3 | ||||||||
| Version: | 3.2 | ||||||||
| Target Milestone: | 3.3 M1 | ||||||||
| Hardware: | PC | ||||||||
| OS: | Windows XP | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Dani Megert
Created attachment 46427 [details]
remove ResetAllAction
Fix for this weeks integration build: Remove the action.
Problem is that org.eclipse.jdt.internal.ui.wizards.buildpaths.BuildPathsBlock.doUpdateUI() calles init on the NewSourceContainerWorkbookPage with a potentialy (doUpdateUI is an async exec!) not yet created IJavaProject as parameter. Solution: Need a protocol for BuildPathsBlock: 1. new BuildPathsBlock() 2. createControl() 3. init(IJavaProject project) or 1. new BuildPathsBlock() 2. init(IJavaProject project) 3. createControl() with init requires: project != null && project.exists() Second problem is, that the Action is initialized on finishing the first wizard page: The action shouldn't even exist. Third problem is, that ResetAllAction should use some sort of history. The history should be initialized, instead of the action itself. Can't specify such a protocol, since it would lead to breaking API changes in org.eclipse.jdt.ui.wizards.JavaCapabilityConfigurationPage. Best fix I can think of is to register an IElementChangeListener if the project does not exist and wait until it does. (And of course don't init the BuildPathBasePages in a async ui thread) Created attachment 46630 [details]
fix
fixed > I20060718-0800 For second problem see Bug 151400 Third problem is an enhancement and minor, for later. |