From 121a608ff786fab8290c3e0ba18c4066b812fd9d Mon Sep 17 00:00:00 2001 From: David McKnight Date: Fri, 25 Apr 2008 20:55:09 +0000 Subject: [PATCH] [227406] [dstore] DStoreFileService must listen to buffer size preference changes --- .../dstore/DStoreConnectorService.java | 32 ++++++++++++++--- .../dstore/IUniversalDStoreConstants.java | 26 ++++---------- .../connectorservice/dstore/Activator.java | 19 ++++------- .../dstore/RexecDstoreServer.java | 4 +-- .../propertypages/DStorePreferencePage.java | 34 +++++++++---------- 5 files changed, 58 insertions(+), 57 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/DStoreConnectorService.java b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/DStoreConnectorService.java index 369539965eb..c17d6e40b86 100644 --- a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/DStoreConnectorService.java +++ b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/DStoreConnectorService.java @@ -29,6 +29,7 @@ * David McKnight (IBM) - [220123] [api][dstore] Configurable timeout on irresponsiveness * David McKnight (IBM) - [223204] [cleanup] fix broken nls strings in files.ui and others * David Dykstal (IBM) - [225089][ssh][shells][api] Canceling connection leads to exception + * David McKnight (IBM) - [227406] [dstore] DStoreFileService must listen to buffer size preference changes *******************************************************************************/ package org.eclipse.rse.connectorservice.dstore; @@ -125,6 +126,7 @@ public class DStoreConnectorService extends StandardConnectorService implements private ConnectionStatusListener _connectionStatusListener = null; private IServerLauncher starter = null; private IServerLauncherProperties _remoteServerLauncherProperties = null; + private boolean _isConnecting = false; // Shortcut to sysInfo to save time private transient DataElement sysInfo = null; @@ -520,9 +522,11 @@ public class DStoreConnectorService extends StandardConnectorService implements */ protected void internalConnect(IProgressMonitor monitor) throws Exception { - if (isConnected()) { + if (isConnected() || _isConnecting) { return; } + + _isConnecting = true; // set A_PLUGIN_PATH so that dstore picks up the property setPluginPathProperty(); @@ -669,6 +673,7 @@ public class DStoreConnectorService extends StandardConnectorService implements ISystemKeystoreProvider provider = SystemKeystoreProviderManager.getInstance().getDefaultProvider(); if (provider != null) { + _isConnecting = false; if (provider.importCertificates(certs, getHostName())) { connect(monitor); @@ -727,12 +732,14 @@ public class DStoreConnectorService extends StandardConnectorService implements } if (launchMsg != null && launchMsg.equals(IDataStoreConstants.ATTEMPT_RECONNECT)) { + _isConnecting = false; internalConnect(monitor); return; } } else if (launchMsg != null && isPortOutOfRange(launchMsg)) { + _isConnecting = false; launchFailed = true; @@ -771,6 +778,7 @@ public class DStoreConnectorService extends StandardConnectorService implements ) ) { + _isConnecting = false; if (conE instanceof SSLHandshakeException) { List certs = connectStatus.getUntrustedCertificates(); @@ -779,6 +787,7 @@ public class DStoreConnectorService extends StandardConnectorService implements ISystemKeystoreProvider provider = SystemKeystoreProviderManager.getInstance().getDefaultProvider(); if (provider != null) { + if (provider.importCertificates(certs, getHostName())) { connect(monitor); @@ -807,6 +816,7 @@ public class DStoreConnectorService extends StandardConnectorService implements } if (!connectStatus.isConnected() && connectStatus.isSLLProblem()) { + _isConnecting = false; importCertsAndReconnect(connectStatus, monitor); return; } @@ -851,6 +861,7 @@ public class DStoreConnectorService extends StandardConnectorService implements connectStatus = launchServer(clientConnection, info, serverLauncher, monitor); if (!connectStatus.isConnected() && connectStatus.isSLLProblem()) { + _isConnecting = false; importCertsAndReconnect(connectStatus, monitor); return; } @@ -871,8 +882,9 @@ public class DStoreConnectorService extends StandardConnectorService implements DisplayHidableSystemMessageAction msgAction = new DisplayHidableSystemMessageAction(msg, store, ISystemPreferencesConstants.ALERT_SSL); Display.getDefault().syncExec(msgAction); if (msgAction.getReturnCode() != IDialogConstants.YES_ID) - { + { internalDisconnect(monitor); + _isConnecting = false; throw new InterruptedException(); } } @@ -886,6 +898,7 @@ public class DStoreConnectorService extends StandardConnectorService implements if (msgAction.getReturnCode() != IDialogConstants.YES_ID) { internalDisconnect(monitor); + _isConnecting = false; throw new InterruptedException(); } } @@ -972,12 +985,12 @@ public class DStoreConnectorService extends StandardConnectorService implements int keepaliveResponseTimeout = store.getInt(IUniversalDStoreConstants.RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT); if (keepaliveResponseTimeout == 0){ // use the default - keepaliveResponseTimeout = IUniversalDStoreConstants.DEFAULT_PREF_KEEPALIVE_RESPONSE_TIMEOUT; + keepaliveResponseTimeout = store.getDefaultInt(IUniversalDStoreConstants.RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT); } int socketTimeout = store.getInt(IUniversalDStoreConstants.RESID_PREF_SOCKET_READ_TIMEOUT); if (socketTimeout == 0){ // use the default - socketTimeout = IUniversalDStoreConstants.DEFAULT_PREF_SOCKET_READ_TIMEOUT; + socketTimeout = store.getDefaultInt(IUniversalDStoreConstants.RESID_PREF_SOCKET_READ_TIMEOUT); } // these preferences are only for the client @@ -1021,6 +1034,7 @@ public class DStoreConnectorService extends StandardConnectorService implements { if (provider.importCertificates(certs, getHostName())) { + _isConnecting = false; internalConnect(monitor); return; } @@ -1048,6 +1062,7 @@ public class DStoreConnectorService extends StandardConnectorService implements } else if (launchMsg != null && launchMsg.indexOf(IDataStoreConstants.AUTHENTICATION_FAILED) != -1) { + _isConnecting = false; if (launchFailed) { clearPassword(true, true); @@ -1085,6 +1100,7 @@ public class DStoreConnectorService extends StandardConnectorService implements throw connectException; } + // Try to connect again. This is a recursive call, but will only // call if the user presses OK on the password prompt dialog, otherwise // it will continue and return @@ -1096,6 +1112,7 @@ public class DStoreConnectorService extends StandardConnectorService implements // If password has expired and must be changed else if (launchMsg != null && (isPasswordExpired(launchMsg) || isNewPasswordInvalid(launchMsg))) { + _isConnecting = false; SystemSignonInformation oldCredentials = (SystemSignonInformation) getCredentialsProvider().getCredentials(); SystemSignonInformation newCredentials = null; while (launchMsg != null && (isPasswordExpired(launchMsg) || isNewPasswordInvalid(launchMsg))) @@ -1117,7 +1134,7 @@ public class DStoreConnectorService extends StandardConnectorService implements launchMsg = launchStatus.getMessage(); } if (launchMsg != null && launchMsg.equals(IDataStoreConstants.ATTEMPT_RECONNECT)) - { + { internalConnect(monitor); return; } @@ -1223,6 +1240,8 @@ public class DStoreConnectorService extends StandardConnectorService implements } } }); + + _isConnecting = false; // Check if the user cancelled the prompt if (connectException instanceof OperationCanceledException) @@ -1230,6 +1249,7 @@ public class DStoreConnectorService extends StandardConnectorService implements throw connectException; } + // Try to connect again. This is a recursive call, but will only // call if the user presses OK on the password prompt dialog, otherwise // it will continue and return @@ -1239,8 +1259,10 @@ public class DStoreConnectorService extends StandardConnectorService implements return; } + _isConnecting = false; throw new SystemMessageException(msg); } + _isConnecting = false; } protected boolean isPortOutOfRange(String message) diff --git a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/IUniversalDStoreConstants.java b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/IUniversalDStoreConstants.java index 9caa18f5373..395e5d7fb77 100644 --- a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/IUniversalDStoreConstants.java +++ b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/connectorservice/dstore/IUniversalDStoreConstants.java @@ -18,6 +18,7 @@ * David McKnight (IBM) - [220123][dstore] Configurable timeout on irresponsiveness * David McKnight (IBM) - [221747] Default Connection Timeout is too high * David McKnight (IBM) - [228334] [dstore] Default DataStore connection timeout is too short + * David McKnight (IBM) - [227406] [dstore] DStoreFileService must listen to buffer size preference changes *******************************************************************************/ package org.eclipse.rse.connectorservice.dstore; @@ -61,42 +62,27 @@ public interface IUniversalDStoreConstants // RemoteClassLoader caching preferences public static final String RESID_PREF_CACHE_REMOTE_CLASSES = RESID_PREF_PREFIX + "cacheremoteclasses"; //$NON-NLS-1$ - public static final boolean DEFAULT_PREF_CACHE_REMOTE_CLASSES = true; - - // Socket timeout preference + + // Socket timeout preference public static final String RESID_PREF_SOCKET_TIMEOUT = RESID_PREF_PREFIX + "sockettimeout"; //$NON-NLS-1$ - public static final int DEFAULT_PREF_SOCKET_TIMEOUT = 5000; public static final String RESID_PREF_DO_KEEPALIVE = RESID_PREF_PREFIX + "dokeepalive"; //$NON-NLS-1$ - public static final boolean DEFAULT_PREF_DO_KEEPALIVE = true; - + /** * @since 3.0 */ public static final String RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT = RESID_PREF_PREFIX + "keepalivetimeout"; //$NON-NLS-1$ - /** - * @since 3.0 - */ - public static final int DEFAULT_PREF_KEEPALIVE_RESPONSE_TIMEOUT = 60000; - /** * @since 3.0 */ public static final String RESID_PREF_SOCKET_READ_TIMEOUT = RESID_PREF_PREFIX + "socketreadtimeout"; //$NON-NLS-1$ - /** - * @since 3.0 - */ - public static final int DEFAULT_PREF_SOCKET_READ_TIMEOUT = 3600000; - + /** * @since 3.0 */ public static final String ALERT_MISMATCHED_SERVER = RESID_PREFIX + "alert.mismatched.server"; //$NON-NLS-1$ - /** - * @since 3.0 - */ - public static final boolean DEFAULT_ALERT_MISMATCHED_SERVER = true; + } diff --git a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/Activator.java b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/Activator.java index 33279996f49..27d261c83d0 100644 --- a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/Activator.java +++ b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/Activator.java @@ -15,6 +15,7 @@ * Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin * David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible * David McKnight (IBM) - [220123] [api][dstore] Configurable timeout on irresponsiveness + * David McKnight (IBM) - [227406] [dstore] DStoreFileService must listen to buffer size preference changes *******************************************************************************/ package org.eclipse.rse.internal.connectorservice.dstore; @@ -57,28 +58,22 @@ public class Activator extends SystemBasePlugin { public void initializeDefaultPreferences() { IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore(); - int timeout = IUniversalDStoreConstants.DEFAULT_PREF_SOCKET_TIMEOUT; - store.setDefault(IUniversalDStoreConstants.RESID_PREF_SOCKET_TIMEOUT, timeout); + store.setDefault(IUniversalDStoreConstants.RESID_PREF_SOCKET_TIMEOUT, 5000); // do keepalive - boolean doKeepalive = IUniversalDStoreConstants.DEFAULT_PREF_DO_KEEPALIVE; - store.setValue(IUniversalDStoreConstants.RESID_PREF_DO_KEEPALIVE, doKeepalive); + store.setValue(IUniversalDStoreConstants.RESID_PREF_DO_KEEPALIVE, true); // socket read timeout - int socketTimeout = IUniversalDStoreConstants.DEFAULT_PREF_SOCKET_READ_TIMEOUT; - store.setDefault(IUniversalDStoreConstants.RESID_PREF_SOCKET_READ_TIMEOUT, socketTimeout); + store.setDefault(IUniversalDStoreConstants.RESID_PREF_SOCKET_READ_TIMEOUT, 3600000); // keepalive response timeout - int keepaliveTimeout = IUniversalDStoreConstants.DEFAULT_PREF_KEEPALIVE_RESPONSE_TIMEOUT; - store.setDefault(IUniversalDStoreConstants.RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT, keepaliveTimeout); + store.setDefault(IUniversalDStoreConstants.RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT, 60000); // show mismatched server warning - boolean showMismatchedWarning = IUniversalDStoreConstants.DEFAULT_ALERT_MISMATCHED_SERVER; - store.setDefault(IUniversalDStoreConstants.ALERT_MISMATCHED_SERVER, showMismatchedWarning); + store.setDefault(IUniversalDStoreConstants.ALERT_MISMATCHED_SERVER, true); // cache remote classes - boolean cacheRemoteClasses = IUniversalDStoreConstants.DEFAULT_PREF_CACHE_REMOTE_CLASSES; - store.setDefault(IUniversalDStoreConstants.RESID_PREF_CACHE_REMOTE_CLASSES, cacheRemoteClasses); + store.setDefault(IUniversalDStoreConstants.RESID_PREF_CACHE_REMOTE_CLASSES, true); } /** diff --git a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/RexecDstoreServer.java b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/RexecDstoreServer.java index 9499b9b0f4a..0f901eed093 100644 --- a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/RexecDstoreServer.java +++ b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/RexecDstoreServer.java @@ -17,6 +17,7 @@ * Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin * David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared * David McKnight (IBM) - [221095] [dstore][launcher] Specified REXEC port number is not used + * David McKnight (IBM) - [227406] [dstore] DStoreFileService must listen to buffer size preference changes *******************************************************************************/ package org.eclipse.rse.internal.connectorservice.dstore; @@ -31,7 +32,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.dstore.core.client.ClientConnection; import org.eclipse.dstore.core.client.ConnectionStatus; import org.eclipse.osgi.util.NLS; -import org.eclipse.rse.connectorservice.dstore.IUniversalDStoreConstants; import org.eclipse.rse.core.model.SystemSignonInformation; import org.eclipse.rse.core.subsystems.IRemoteServerLauncher; import org.eclipse.rse.core.subsystems.IServerLauncher; @@ -63,7 +63,7 @@ public class RexecDstoreServer implements IServerLauncher private boolean isModeChecked = false; private boolean checkPort =true; private boolean logInfo = false; - private int _socketTimeoutValue = IUniversalDStoreConstants.DEFAULT_PREF_SOCKET_TIMEOUT; + private int _socketTimeoutValue = 5000; private static char[] ebcdictounicode = { diff --git a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/ui/propertypages/DStorePreferencePage.java b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/ui/propertypages/DStorePreferencePage.java index d0c56f3eceb..70e04f1eeb8 100644 --- a/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/ui/propertypages/DStorePreferencePage.java +++ b/rse/plugins/org.eclipse.rse.connectorservice.dstore/src/org/eclipse/rse/internal/connectorservice/dstore/ui/propertypages/DStorePreferencePage.java @@ -11,6 +11,7 @@ * Contributors: * David McKnight (IBM) - [216596] dstore preferences (timeout, and others) * David McKnight (IBM) - [220123][dstore] Configurable timeout on irresponsiveness + * David McKnight (IBM) - [227406] [dstore] DStoreFileService must listen to buffer size preference changes ********************************************************************************/ package org.eclipse.rse.internal.connectorservice.dstore.ui.propertypages; @@ -170,7 +171,7 @@ public class DStorePreferencePage extends PreferencePage implements IWorkbenchPr timeout = store.getInt(IUniversalDStoreConstants.RESID_PREF_SOCKET_TIMEOUT); } else { - timeout = IUniversalDStoreConstants.DEFAULT_PREF_SOCKET_TIMEOUT; + timeout = store.getDefaultInt(IUniversalDStoreConstants.RESID_PREF_SOCKET_TIMEOUT); store.setDefault(IUniversalDStoreConstants.RESID_PREF_SOCKET_TIMEOUT, timeout); } _connectionTimeout.setText(""+timeout); //$NON-NLS-1$ @@ -182,7 +183,7 @@ public class DStorePreferencePage extends PreferencePage implements IWorkbenchPr cacheRemoteClasses = store.getBoolean(IUniversalDStoreConstants.RESID_PREF_CACHE_REMOTE_CLASSES); } else { - cacheRemoteClasses = IUniversalDStoreConstants.DEFAULT_PREF_CACHE_REMOTE_CLASSES; + cacheRemoteClasses = store.getDefaultBoolean(IUniversalDStoreConstants.RESID_PREF_CACHE_REMOTE_CLASSES); store.setDefault(IUniversalDStoreConstants.RESID_PREF_CACHE_REMOTE_CLASSES, cacheRemoteClasses); } _cacheRemoteClassesButton.setSelection(cacheRemoteClasses); @@ -194,9 +195,7 @@ public class DStorePreferencePage extends PreferencePage implements IWorkbenchPr doKeepalive = store.getBoolean(IUniversalDStoreConstants.RESID_PREF_DO_KEEPALIVE); } else { - doKeepalive = IUniversalDStoreConstants.DEFAULT_PREF_DO_KEEPALIVE; - store.setDefault(IUniversalDStoreConstants.RESID_PREF_DO_KEEPALIVE, doKeepalive); - + doKeepalive = store.getDefaultBoolean(IUniversalDStoreConstants.RESID_PREF_DO_KEEPALIVE); } _doKeepaliveButton.setSelection(doKeepalive); @@ -205,8 +204,7 @@ public class DStorePreferencePage extends PreferencePage implements IWorkbenchPr socketTimeout = store.getInt(IUniversalDStoreConstants.RESID_PREF_SOCKET_READ_TIMEOUT); } else { - socketTimeout = IUniversalDStoreConstants.DEFAULT_PREF_SOCKET_READ_TIMEOUT; - store.setDefault(IUniversalDStoreConstants.RESID_PREF_SOCKET_READ_TIMEOUT, socketTimeout); + socketTimeout = store.getDefaultInt(IUniversalDStoreConstants.RESID_PREF_SOCKET_READ_TIMEOUT); } _socketReadTimeout.setText(""+socketTimeout); //$NON-NLS-1$ _socketReadTimeout.setEnabled(doKeepalive); @@ -216,8 +214,7 @@ public class DStorePreferencePage extends PreferencePage implements IWorkbenchPr keepaliveTimeout = store.getInt(IUniversalDStoreConstants.RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT); } else { - keepaliveTimeout = IUniversalDStoreConstants.DEFAULT_PREF_KEEPALIVE_RESPONSE_TIMEOUT; - store.setDefault(IUniversalDStoreConstants.RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT, keepaliveTimeout); + keepaliveTimeout = store.getDefaultInt(IUniversalDStoreConstants.RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT); } _keepaliveResponseTimeout.setText(""+keepaliveTimeout); //$NON-NLS-1$ _keepaliveResponseTimeout.setEnabled(doKeepalive); @@ -228,9 +225,7 @@ public class DStorePreferencePage extends PreferencePage implements IWorkbenchPr showMismatchedWarning = store.getBoolean(IUniversalDStoreConstants.ALERT_MISMATCHED_SERVER); } else { - showMismatchedWarning = IUniversalDStoreConstants.DEFAULT_ALERT_MISMATCHED_SERVER; - store.setDefault(IUniversalDStoreConstants.ALERT_MISMATCHED_SERVER, showMismatchedWarning); - + showMismatchedWarning = store.getDefaultBoolean(IUniversalDStoreConstants.ALERT_MISMATCHED_SERVER); } _showMismatchedServerWarningButton.setSelection(showMismatchedWarning); } @@ -243,30 +238,33 @@ public class DStorePreferencePage extends PreferencePage implements IWorkbenchPr protected void performDefaults() { super.performDefaults(); - int timeout = IUniversalDStoreConstants.DEFAULT_PREF_SOCKET_TIMEOUT; + IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore(); + + int timeout = store.getDefaultInt(IUniversalDStoreConstants.RESID_PREF_SOCKET_TIMEOUT); _connectionTimeout.setText(""+timeout); //$NON-NLS-1$ // do keepalive - boolean doKeepalive = IUniversalDStoreConstants.DEFAULT_PREF_DO_KEEPALIVE; + boolean doKeepalive = store.getDefaultBoolean(IUniversalDStoreConstants.RESID_PREF_DO_KEEPALIVE); _doKeepaliveButton.setSelection(doKeepalive); // socket read timeout - int socketTimeout = IUniversalDStoreConstants.DEFAULT_PREF_SOCKET_READ_TIMEOUT; + int socketTimeout = store.getDefaultInt(IUniversalDStoreConstants.RESID_PREF_SOCKET_READ_TIMEOUT); + _socketReadTimeout.setText(""+socketTimeout); //$NON-NLS-1$ _socketReadTimeout.setEnabled(doKeepalive); // keepalive response timeout - int keepaliveTimeout = IUniversalDStoreConstants.DEFAULT_PREF_KEEPALIVE_RESPONSE_TIMEOUT; + int keepaliveTimeout = store.getDefaultInt(IUniversalDStoreConstants.RESID_PREF_KEEPALIVE_RESPONSE_TIMEOUT); _keepaliveResponseTimeout.setText(""+keepaliveTimeout); //$NON-NLS-1$ _keepaliveResponseTimeout.setEnabled(doKeepalive); // show mismatched server warning - boolean showMismatchedWarning = IUniversalDStoreConstants.DEFAULT_ALERT_MISMATCHED_SERVER; + boolean showMismatchedWarning = store.getDefaultBoolean(IUniversalDStoreConstants.ALERT_MISMATCHED_SERVER); _showMismatchedServerWarningButton.setSelection(showMismatchedWarning); // cache remote classes - boolean cacheRemoteClasses = IUniversalDStoreConstants.DEFAULT_PREF_CACHE_REMOTE_CLASSES; + boolean cacheRemoteClasses = store.getDefaultBoolean(IUniversalDStoreConstants.RESID_PREF_CACHE_REMOTE_CLASSES); _cacheRemoteClassesButton.setSelection(cacheRemoteClasses); }