This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Summary: | IDE freezes when creating web service client from secured web service. | ||
---|---|---|---|
Product: | webservices | Reporter: | rptmaestro <rptmaestro> |
Component: | Code | Assignee: | Milan Kuchtiak <mkuchtiak> |
Status: | VERIFIED FIXED | ||
Severity: | blocker | CC: | abadea, pcw |
Priority: | P1 | ||
Version: | 5.x | ||
Hardware: | Other | ||
OS: | All | ||
Issue Type: | DEFECT | Exception Reporter: |
Description
rptmaestro
2006-06-28 18:54:20 UTC
I managed to reproduce the issue. It's an infinite loop. IDE is repeatedly trying to access directly the secure web service. The cause of the freeze is that the AWT thread runs in a busy wait loop, effectively blocking the UI (filed issue 79514 for that). The authenticator needs to display its dialog, so it will wait on the AWT thread forever. It seems to be the intention of the code in validatePanel() to wait for WsdlRetriever to terminate. But the fix ignores that and breaks the wait loop when the authenticator dialog needs to be displayed. Probably harmless because on the other hand the WSDL retriever will send an event when it terminates. But it is unnecessarily complicated and hard to understand. What is for example the meaning of: throw new WizardValidationException(this, "", ""); //NOI18N which now happens even before the retriever terminates? The fix probably introduced another issue: if the Cancel button is pressed in the authenticator dialog the wizard's Finish button is disabled and stays so no matter what is changed in the wizard. Seems weird and brittle. I hope it will be removed when issue 79514 is fixed. I agree with Andrei about the wait loop and the issues he has described that both it and the fix to this deadlock introduce. I would like to add that there are some rare scenarios, possibly hypothetical, where the retriever thread might not terminate at all (e.g. if the HTTP connection hangs). The original design of the wizard allowed for such possibility without an adverse effect on the IDE. I don't think this is true anymore, even with this patch. I understand this loop was introduced for the purpose of removing the <WSDL Retrieve...> step and instead download the WSDL automatically when the user selects <Next...>. I think the implementation of this change should be revisited (which I believe is the point of issue 79514) Deadlock has been fixed, the rest is filed as a separate issue 79514 => this one has been verified |