diff options
author | Pawel Piech | 2010-10-28 19:47:42 +0000 |
---|---|---|
committer | Pawel Piech | 2010-10-28 19:47:42 +0000 |
commit | 4dea12d98e8c0a6d1ea14d0a3ba3b9b91f58ebf7 (patch) | |
tree | c975122cbe0406ecd278b805a61de1f9e3d69fb3 | |
parent | c0f40ceb474ee93ed4e5b925f95b4ca9799516b4 (diff) | |
download | org.eclipse.cdt-4dea12d98e8c0a6d1ea14d0a3ba3b9b91f58ebf7.tar.gz org.eclipse.cdt-4dea12d98e8c0a6d1ea14d0a3ba3b9b91f58ebf7.tar.xz org.eclipse.cdt-4dea12d98e8c0a6d1ea14d0a3ba3b9b91f58ebf7.zip |
Bug 328883 - AbstractCachingVMProvider throws ClassCastException
3 files changed, 7 insertions, 8 deletions
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java index f9f389c6885..f20b47b69af 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java @@ -560,11 +560,11 @@ public class FormattedValueRetriever { if (update.getProperties().contains(PROP_ACTIVE_FORMAT_VALUE) && format.equals(activeFormat)) { - PropertiesUpdateStatus.getPropertiesStatus(update).setStatus( + PropertiesUpdateStatus.makePropertiesStatus(update.getStatus()).setStatus( new String[] { PROP_ACTIVE_FORMAT_VALUE, formatProperty }, staleDataStatus); } else { - PropertiesUpdateStatus.getPropertiesStatus(update).setStatus(formatProperty, staleDataStatus); + PropertiesUpdateStatus.makePropertiesStatus(update.getStatus()).setStatus(formatProperty, staleDataStatus); } } } diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/PropertiesUpdateStatus.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/PropertiesUpdateStatus.java index 5ff39b4c9da..cce0ff6a59e 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/PropertiesUpdateStatus.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/properties/PropertiesUpdateStatus.java @@ -203,8 +203,7 @@ public class PropertiesUpdateStatus extends DsfMultiStatus { * Convenience method that returns and optionally creates a properties * update status object for the given update. */ - public static PropertiesUpdateStatus getPropertiesStatus(IPropertiesUpdate update) { - IStatus updateStatus = update.getStatus(); + public static PropertiesUpdateStatus makePropertiesStatus(IStatus updateStatus) { if (updateStatus instanceof PropertiesUpdateStatus) { return (PropertiesUpdateStatus)updateStatus; } else { diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java index 0323463de24..b0ad8e4bbe5 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java @@ -1177,13 +1177,13 @@ public class AbstractCachingVMProvider extends AbstractVMProvider String missingProperty = itr.next(); if ( !updatePolicyExt.canUpdateDirtyProperty(entry, missingProperty) ) { itr.remove(); - PropertiesUpdateStatus.getPropertiesStatus(update).setStatus( + PropertiesUpdateStatus.makePropertiesStatus(update.getStatus()).setStatus( missingProperty, DsfUIPlugin.newErrorStatus(IDsfStatusConstants.INVALID_STATE, "Cache contains stale data. Refresh view.", null ));//$NON-NLS-1$ } } } else { - PropertiesUpdateStatus.getPropertiesStatus(update).setStatus( + PropertiesUpdateStatus.makePropertiesStatus(update.getStatus()).setStatus( missingProperties.toArray(new String[missingProperties.size()]), DsfUIPlugin.newErrorStatus(IDsfStatusConstants.INVALID_STATE, "Cache contains stale data. Refresh view.", null ));//$NON-NLS-1$ missingProperties.clear(); @@ -1210,7 +1210,7 @@ public class AbstractCachingVMProvider extends AbstractVMProvider new ViewerDataRequestMonitor<Map<String, Object>>(getExecutor(), update) { @Override protected void handleCompleted() { - PropertiesUpdateStatus missUpdateStatus = (PropertiesUpdateStatus)getStatus(); + PropertiesUpdateStatus missUpdateStatus = PropertiesUpdateStatus.makePropertiesStatus(getStatus()); Map<String, Object> cachedProperties; PropertiesUpdateStatus cachedStatus; if (!isCanceled() && flushCounter == entry.fFlushCounter) { @@ -1295,7 +1295,7 @@ public class AbstractCachingVMProvider extends AbstractVMProvider for (String property : update.getProperties()) { update.setProperty(property, cachedProperties.get(property)); } - PropertiesUpdateStatus updateStatus = PropertiesUpdateStatus.getPropertiesStatus(update); + PropertiesUpdateStatus updateStatus = PropertiesUpdateStatus.makePropertiesStatus(update.getStatus()); updateStatus = PropertiesUpdateStatus.mergePropertiesStatus( updateStatus, cachedStatus, update.getProperties()); update.setStatus(updateStatus); |