diff options
author | Xavier Coulon | 2016-12-05 10:01:03 +0000 |
---|---|---|
committer | Jeff Johnston | 2016-12-05 23:19:14 +0000 |
commit | 78320adc0ea5c3c0d90b49973cff80374a5a8f73 (patch) | |
tree | 9ee59b7e94cc87e796770e1a37578f76d8105ba6 | |
parent | dbd09ba479d2d15a71fd172b986efdd1c390bb10 (diff) | |
download | org.eclipse.linuxtools-78320adc0ea5c3c0d90b49973cff80374a5a8f73.tar.gz org.eclipse.linuxtools-78320adc0ea5c3c0d90b49973cff80374a5a8f73.tar.xz org.eclipse.linuxtools-78320adc0ea5c3c0d90b49973cff80374a5a8f73.zip |
Bug 508655 - DockerException in DockerConnection.open
Removed the call to `Activator.log(e)` when a problem occurs
while testing the connection settings in the wizard. Instead,
the exception's message is displayed in the error dialog, which
is more explicit to the user (no need to look for the reason
in the Error Log). Same pattern is applied on both
`NewDockerConnection` page and `EditDockerConnection` page.
Also, fixed a few generics warnings in the `NewDockerConnectionPage`
class.
Change-Id: Iac9d1df4c5f1f61268317ce3461b90284c1d1144
Signed-off-by: Xavier Coulon <xcoulon@redhat.com>
Reviewed-on: https://git.eclipse.org/r/86346
Tested-by: Hudson CI
Reviewed-by: Jeff Johnston <jjohnstn@redhat.com>
3 files changed, 36 insertions, 19 deletions
diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/EditDockerConnectionPage.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/EditDockerConnectionPage.java index 87f6419ac8..19075bdbb2 100644 --- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/EditDockerConnectionPage.java +++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/EditDockerConnectionPage.java @@ -406,7 +406,7 @@ public class EditDockerConnectionPage extends WizardPage { return new SelectionAdapter() { @Override - public void widgetSelected(SelectionEvent e) { + public void widgetSelected(final SelectionEvent event) { try { getWizard().getContainer().run(true, false, monitor -> { monitor.beginTask(WizardMessages.getString( @@ -418,12 +418,13 @@ public class EditDockerConnectionPage extends WizardPage { dockerConnection.close(); // ping succeeded displaySuccessDialog(); - } catch (DockerException e1) { + } catch (DockerException e) { // only log if there's an underlying cause. - if (e1.getCause() != null) { - Activator.log(e1); + if (e.getCause() != null) { + displayErrorDialog(e.getCause()); + } else { + displayErrorDialog(e); } - displayErrorDialog(); } }); } catch (InvocationTargetException | InterruptedException o_O) { @@ -443,12 +444,14 @@ public class EditDockerConnectionPage extends WizardPage { ); } - private void displayErrorDialog() { + private void displayErrorDialog(final Throwable cause) { displayDialog( WizardMessages .getString("DockerConnectionPage.failure"), //$NON-NLS-1$ WizardMessages - .getString("DockerConnectionPage.pingFailure"), //$NON-NLS-1$ + .getFormattedString( + "DockerConnectionPage.pingFailure", //$NON-NLS-1$ + cause.getMessage()), SWT.ICON_ERROR, new String[] { WizardMessages .getString("DockerConnectionPage.ok") } //$NON-NLS-1$ ); diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionPage.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionPage.java index 35bef24c7d..09b1d683d7 100644 --- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionPage.java +++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionPage.java @@ -290,35 +290,43 @@ public class NewDockerConnectionPage extends WizardPage { .addSelectionListener(onTestConnectionButtonSelection()); // observe + @SuppressWarnings("unchecked") final IObservableValue<String> connectionNameModelObservable = BeanProperties .value(NewDockerConnectionPageModel.class, NewDockerConnectionPageModel.CONNECTION_NAME) .observe(model); + @SuppressWarnings("unchecked") final IObservableValue<Boolean> unixSocketBindingModeModelObservable = BeanProperties .value(NewDockerConnectionPageModel.class, NewDockerConnectionPageModel.UNIX_SOCKET_BINDING_MODE) .observe(model); + @SuppressWarnings("unchecked") final IObservableValue<String> unixSocketPathModelObservable = BeanProperties .value(NewDockerConnectionPageModel.class, NewDockerConnectionPageModel.UNIX_SOCKET_PATH) .observe(model); - final IObservableValue customConnectionSettingsModelObservable = BeanProperties + @SuppressWarnings("unchecked") + final IObservableValue<Boolean> customConnectionSettingsModelObservable = BeanProperties .value(NewDockerConnectionPageModel.class, NewDockerConnectionPageModel.CUSTOM_SETTINGS) .observe(model); + @SuppressWarnings("unchecked") final IObservableValue<Boolean> tcpConnectionBindingModeModelObservable = BeanProperties .value(NewDockerConnectionPageModel.class, NewDockerConnectionPageModel.TCP_CONNECTION_BINDING_MODE) .observe(model); + @SuppressWarnings("unchecked") final IObservableValue<String> tcpCertPathModelObservable = BeanProperties .value(NewDockerConnectionPageModel.class, NewDockerConnectionPageModel.TCP_CERT_PATH) .observe(model); + @SuppressWarnings("unchecked") final IObservableValue<Boolean> tcpTlsVerifyModelObservable = BeanProperties .value(NewDockerConnectionPageModel.class, NewDockerConnectionPageModel.TCP_TLS_VERIFY) .observe(model); + @SuppressWarnings("unchecked") final IObservableValue<String> tcpHostModelObservable = BeanProperties .value(NewDockerConnectionPageModel.class, NewDockerConnectionPageModel.TCP_HOST) @@ -541,7 +549,7 @@ public class NewDockerConnectionPage extends WizardPage { bindingModeSelectionControls); } - private IValueChangeListener onCustomConnectionSettingsSelection( + private IValueChangeListener<Boolean> onCustomConnectionSettingsSelection( final Control[] bindingModeSelectionControls, final Control[] unixSocketControls, final Control[] tcpAuthControls, final Control[] tcpConnectionControls) { @@ -572,7 +580,7 @@ public class NewDockerConnectionPage extends WizardPage { }; } - private IValueChangeListener onTcpAuthSelection( + private IValueChangeListener<Boolean> onTcpAuthSelection( final Control[] tcpAuthControls) { return event -> setWidgetsEnabled(model.isCustomSettings() && model.isTcpConnectionBindingMode() && model.isTcpTLSVerify(), @@ -605,7 +613,7 @@ public class NewDockerConnectionPage extends WizardPage { return new SelectionAdapter() { @Override - public void widgetSelected(SelectionEvent e) { + public void widgetSelected(final SelectionEvent event) { try { getWizard().getContainer().run(true, false, monitor -> { monitor.beginTask(WizardMessages.getString( @@ -618,12 +626,16 @@ public class NewDockerConnectionPage extends WizardPage { dockerConnection.close(); // ping succeeded displaySuccessDialog(); - } catch (DockerException e1) { - // only log if there's an underlying cause. - if (e1.getCause() != null) { - Activator.log(e1); + } catch (DockerException e) { + // only log if there's an underlying cause, but not + // as an error + // because there's no need to report such problems + // in Eclipse.org AERI + if (e.getCause() != null) { + displayErrorDialog(e.getCause()); + } else { + displayErrorDialog(e); } - displayErrorDialog(); } }); } catch (InvocationTargetException | InterruptedException o_O) { @@ -643,12 +655,14 @@ public class NewDockerConnectionPage extends WizardPage { ); } - private void displayErrorDialog() { + private void displayErrorDialog(final Throwable cause) { displayDialog( WizardMessages .getString("DockerConnectionPage.failure"), //$NON-NLS-1$ WizardMessages - .getString("DockerConnectionPage.pingFailure"), //$NON-NLS-1$ + .getFormattedString( + "DockerConnectionPage.pingFailure", //$NON-NLS-1$ + cause.getMessage()), SWT.ICON_ERROR, new String[] { WizardMessages .getString("DockerConnectionPage.ok") } //$NON-NLS-1$ ); diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/WizardMessages.properties b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/WizardMessages.properties index 710c0b4e5a..7de953fb20 100644 --- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/WizardMessages.properties +++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/WizardMessages.properties @@ -203,7 +203,7 @@ DockerConnectionPage.success=Success DockerConnectionPage.pingSuccess=Ping succeeded! DockerConnectionPage.ok=OK DockerConnectionPage.failure=Failure -DockerConnectionPage.pingFailure=Ping failed! +DockerConnectionPage.pingFailure=Ping failed: {0} DockerConnection.failure=Failure DockerConnection.failMessage=Failed to connect! DockerConnectionPage.validation.missingConnectionName.msg=Provide a unique name to identify the new connection. |