Summary: | [ssh][shells][api] Canceling connection leads to exception | ||
---|---|---|---|
Product: | [Tools] Target Management | Reporter: | Benjamin Muskalla <b.muskalla> |
Component: | RSE | Assignee: | David Dykstal <ddykstal.eclipse> |
Status: | RESOLVED FIXED | QA Contact: | Martin Oberhuber <mober.at+eclipse> |
Severity: | normal | ||
Priority: | P3 | CC: | ddykstal.eclipse |
Version: | unspecified | Keywords: | api |
Target Milestone: | 3.0 M6 | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: |
Description
Benjamin Muskalla
2008-04-01 09:43:09 EDT
Martin -- I believe we were considering changing this to throw an OperationCanceledException and have the subsystem handle it properly. This should probably be done for M6. -- Dave Yes I agree that OperationCanceledException is better than InterruptedException. What's interesting is that bug 176605 seems related but it's actually different: that one runs into "Auth Cancel" whereas this one runs into InterruptedException. Looks like this is specific to the "Launch Shell" command. Dave can you look into this? I'm currently swamped with reviewing patches. I'll take a look at it. I don't think this should be very hard. API changes (these are apparently non-breaking according to the API checker) ICredentialsProvider acquireCredentials(boolean reacquire) throws OperationCanceledException rather than InterruptedException repairCredentials(SystemMessage message)throws OperationCanceledException rather than InterruptedException IConnectorService acquireCredentials(boolean refresh) throws OperationCanceledException rather than InterruptedException Several classes were updated to handle or rethrow OperationCanceledException rather than InterruptedException. Changing checked exceptions thrown does not break binary compatibility, but it does break source compatibility and contract compatibility: http://wiki.eclipse.org/Evolving_Java-based_APIs_2#Evolving_API_interfaces_-_API_methods I guess the API Tooling won't mark these either because it's only dealing with binary compatibility alone (for now), or because most of our plugins already do break binary compatibility, going from 2.0 to 3.0, so there is no use in separately marking them. Personally, I would recommend marking your change of checked exception thrown with an "@since 3.0 throwing OperationCanceledException" when API Methods are concerned (no need doing so in the internal classes). Good idea. I've committed the original change, but will add the @since tags and recommit. @since tags committed. |