mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bug 540373: Format some Java files that were missed
Some files which has other cleanups applied meant they needed to be reformatted again. e.g. the removing of type parameters shortened some lines of code that meant the wrapping changed. Change-Id: I68ca09567b9530cc2a085c33923642b6de2ec77b
This commit is contained in:
parent
ff75ae80fa
commit
3caea240a3
80 changed files with 2326 additions and 2518 deletions
|
@ -45,8 +45,7 @@ public final class PathInfo {
|
||||||
fQuoteIncludePaths = quoteIncludePaths != null && quoteIncludePaths.length != 0
|
fQuoteIncludePaths = quoteIncludePaths != null && quoteIncludePaths.length != 0
|
||||||
? (IPath[]) quoteIncludePaths.clone()
|
? (IPath[]) quoteIncludePaths.clone()
|
||||||
: EMPTY_PATH_ARRAY;
|
: EMPTY_PATH_ARRAY;
|
||||||
fSymbols = symbols != null && symbols.size() != 0 ? getInternedHashMap(symbols)
|
fSymbols = symbols != null && symbols.size() != 0 ? getInternedHashMap(symbols) : new HashMap<>(0);
|
||||||
: new HashMap<>(0);
|
|
||||||
fIncludeFiles = includeFiles != null && includeFiles.length != 0 ? (IPath[]) includeFiles.clone()
|
fIncludeFiles = includeFiles != null && includeFiles.length != 0 ? (IPath[]) includeFiles.clone()
|
||||||
: EMPTY_PATH_ARRAY;
|
: EMPTY_PATH_ARRAY;
|
||||||
fMacroFiles = macroFiles != null && macroFiles.length != 0 ? (IPath[]) macroFiles.clone() : EMPTY_PATH_ARRAY;
|
fMacroFiles = macroFiles != null && macroFiles.length != 0 ? (IPath[]) macroFiles.clone() : EMPTY_PATH_ARRAY;
|
||||||
|
|
|
@ -339,8 +339,7 @@ public class DiscoveredPathManager implements IDiscoveredPathManager, IResourceC
|
||||||
PerFileDiscoveredPathContainer container = new PerFileDiscoveredPathContainer(project);
|
PerFileDiscoveredPathContainer container = new PerFileDiscoveredPathContainer(project);
|
||||||
CoreModel.setPathEntryContainer(new ICProject[] { cProject }, container, null);
|
CoreModel.setPathEntryContainer(new ICProject[] { cProject }, container, null);
|
||||||
if (changedResources != null) {
|
if (changedResources != null) {
|
||||||
List<PathEntryContainerChanged> changeDelta = new ArrayList<>(
|
List<PathEntryContainerChanged> changeDelta = new ArrayList<>(changedResources.size());
|
||||||
changedResources.size());
|
|
||||||
for (IResource resource : changedResources) {
|
for (IResource resource : changedResources) {
|
||||||
IPath path = resource.getFullPath();
|
IPath path = resource.getFullPath();
|
||||||
changeDelta.add(
|
changeDelta.add(
|
||||||
|
|
|
@ -338,8 +338,7 @@ public class PerProjectSICollector implements IScannerInfoCollector3, IScannerIn
|
||||||
LinkedHashMap<String, SymbolEntry> persistedSymbols = discPathInfo.getSymbolMap();
|
LinkedHashMap<String, SymbolEntry> persistedSymbols = discPathInfo.getSymbolMap();
|
||||||
|
|
||||||
// Step 3. Merge scanner config from steps 1 and 2
|
// Step 3. Merge scanner config from steps 1 and 2
|
||||||
LinkedHashMap<String, SymbolEntry> candidateSymbols = new LinkedHashMap<>(
|
LinkedHashMap<String, SymbolEntry> candidateSymbols = new LinkedHashMap<>(persistedSymbols);
|
||||||
persistedSymbols);
|
|
||||||
addedSymbols |= ScannerConfigUtil.scAddSymbolEntryMap2SymbolEntryMap(candidateSymbols,
|
addedSymbols |= ScannerConfigUtil.scAddSymbolEntryMap2SymbolEntryMap(candidateSymbols,
|
||||||
sumDiscoveredSymbols);
|
sumDiscoveredSymbols);
|
||||||
|
|
||||||
|
|
|
@ -58,8 +58,7 @@ public class Preconditions extends TestCase {
|
||||||
IContentType contentTypeC = manager.getContentType(CCorePlugin.CONTENT_TYPE_CSOURCE);
|
IContentType contentTypeC = manager.getContentType(CCorePlugin.CONTENT_TYPE_CSOURCE);
|
||||||
fileExts.addAll(Arrays.asList(contentTypeC.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
|
fileExts.addAll(Arrays.asList(contentTypeC.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
|
||||||
|
|
||||||
Set<String> expectedExts = new TreeSet<>(
|
Set<String> expectedExts = new TreeSet<>(Arrays.asList(new String[] { "C", "c", "c++", "cc", "cpp", "cxx" }));
|
||||||
Arrays.asList(new String[] { "C", "c", "c++", "cc", "cpp", "cxx" }));
|
|
||||||
assertEquals("Precodition FAILED - Content Types do not match expected defaults.", expectedExts.toString(),
|
assertEquals("Precodition FAILED - Content Types do not match expected defaults.", expectedExts.toString(),
|
||||||
fileExts.toString());
|
fileExts.toString());
|
||||||
}
|
}
|
||||||
|
|
|
@ -2163,8 +2163,7 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
// Call the start up config extensions. These may rely on the standard elements
|
// Call the start up config extensions. These may rely on the standard elements
|
||||||
// having already been loaded so we wait to call them from here.
|
// having already been loaded so we wait to call them from here.
|
||||||
if (startUpConfigElements != null) {
|
if (startUpConfigElements != null) {
|
||||||
buildDefStartupList = new ArrayList<>(
|
buildDefStartupList = new ArrayList<>(startUpConfigElements.size());
|
||||||
startUpConfigElements.size());
|
|
||||||
|
|
||||||
for (IManagedConfigElement startUpConfigElement : startUpConfigElements) {
|
for (IManagedConfigElement startUpConfigElement : startUpConfigElements) {
|
||||||
IManagedBuildDefinitionsStartup customConfigLoader;
|
IManagedBuildDefinitionsStartup customConfigLoader;
|
||||||
|
|
|
@ -1466,8 +1466,7 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
|
||||||
ICSettingEntry[] libs = CDataUtil.resolveEntries(unresolved, des);
|
ICSettingEntry[] libs = CDataUtil.resolveEntries(unresolved, des);
|
||||||
if (libs.length > 0) {
|
if (libs.length > 0) {
|
||||||
for (ICExternalSetting setting : des.getExternalSettings()) {
|
for (ICExternalSetting setting : des.getExternalSettings()) {
|
||||||
Set<ICSettingEntry> entries = new LinkedHashSet<>(
|
Set<ICSettingEntry> entries = new LinkedHashSet<>(Arrays.asList(setting.getEntries()));
|
||||||
Arrays.asList(setting.getEntries()));
|
|
||||||
for (ICSettingEntry lib : libs) {
|
for (ICSettingEntry lib : libs) {
|
||||||
if (entries.contains(lib)) {
|
if (entries.contains(lib)) {
|
||||||
entries.remove(lib);
|
entries.remove(lib);
|
||||||
|
|
|
@ -91,8 +91,7 @@ public class HeadlessBuilderExternalSettingsProvider extends CExternalSettingPro
|
||||||
if (desc == null)
|
if (desc == null)
|
||||||
continue;
|
continue;
|
||||||
for (ICConfigurationDescription cfg : desc.getConfigurations()) {
|
for (ICConfigurationDescription cfg : desc.getConfigurations()) {
|
||||||
ArrayList<String> extSettingIds = new ArrayList<>(
|
ArrayList<String> extSettingIds = new ArrayList<>(Arrays.asList(cfg.getExternalSettingsProviderIds()));
|
||||||
Arrays.asList(cfg.getExternalSettingsProviderIds()));
|
|
||||||
for (Iterator<String> it = extSettingIds.iterator(); it.hasNext();)
|
for (Iterator<String> it = extSettingIds.iterator(); it.hasNext();)
|
||||||
if (ID.equals(it.next()))
|
if (ID.equals(it.next()))
|
||||||
it.remove();
|
it.remove();
|
||||||
|
|
|
@ -296,8 +296,7 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest
|
||||||
case UNDEF_MACRO_FILES:
|
case UNDEF_MACRO_FILES:
|
||||||
if (option.value != null) {
|
if (option.value != null) {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
ArrayList<OptionStringValue> list = new ArrayList<>(
|
ArrayList<OptionStringValue> list = new ArrayList<>((ArrayList<OptionStringValue>) option.value);
|
||||||
(ArrayList<OptionStringValue>) option.value);
|
|
||||||
value = list;
|
value = list;
|
||||||
}
|
}
|
||||||
if (option.defaultValue != null) {
|
if (option.defaultValue != null) {
|
||||||
|
|
|
@ -254,8 +254,7 @@ public class BuildEntryStorage extends AbstractEntryStorage {
|
||||||
} else {
|
} else {
|
||||||
// If resolved, add each resolved entry as a separate UserEntryInfo
|
// If resolved, add each resolved entry as a separate UserEntryInfo
|
||||||
boolean isMultiple = rVes.length > 1;
|
boolean isMultiple = rVes.length > 1;
|
||||||
List<UserEntryInfo> sequense = isMultiple ? new ArrayList<>(rVes.length)
|
List<UserEntryInfo> sequense = isMultiple ? new ArrayList<>(rVes.length) : null;
|
||||||
: null;
|
|
||||||
for (OptionStringValue rVe : rVes) {
|
for (OptionStringValue rVe : rVes) {
|
||||||
ICLanguageSettingEntry entry = createUserEntry(option, rVe, flags, subst);
|
ICLanguageSettingEntry entry = createUserEntry(option, rVe, flags, subst);
|
||||||
entryList.add(new UserEntryInfo(entry, ve, rVe, sequense));
|
entryList.add(new UserEntryInfo(entry, ve, rVe, sequense));
|
||||||
|
|
|
@ -113,8 +113,7 @@ public class PathComparator implements Comparator<IPath> {
|
||||||
//all children
|
//all children
|
||||||
SortedMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> children = getChildPathMap(map, path, false,
|
SortedMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> children = getChildPathMap(map, path, false,
|
||||||
false);
|
false);
|
||||||
SortedMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(
|
SortedMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(INSTANCE);
|
||||||
INSTANCE);
|
|
||||||
for (Iterator<Map.Entry<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>>> iter = children.entrySet()
|
for (Iterator<Map.Entry<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>>> iter = children.entrySet()
|
||||||
.iterator(); iter.hasNext(); iter = children.entrySet().iterator()) {
|
.iterator(); iter.hasNext(); iter = children.entrySet().iterator()) {
|
||||||
Map.Entry<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> entry = iter.next();
|
Map.Entry<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> entry = iter.next();
|
||||||
|
|
|
@ -213,8 +213,7 @@ public class TcModificationUtil {
|
||||||
int[] types = new int[] { IRealBuildObjectAssociation.OBJECT_TOOLCHAIN,
|
int[] types = new int[] { IRealBuildObjectAssociation.OBJECT_TOOLCHAIN,
|
||||||
IRealBuildObjectAssociation.OBJECT_BUILDER, IRealBuildObjectAssociation.OBJECT_TOOL, };
|
IRealBuildObjectAssociation.OBJECT_BUILDER, IRealBuildObjectAssociation.OBJECT_TOOL, };
|
||||||
|
|
||||||
TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(
|
TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(PathComparator.INSTANCE);
|
||||||
PathComparator.INSTANCE);
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> clone = (TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>>) initialMap
|
TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> clone = (TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>>) initialMap
|
||||||
.clone();
|
.clone();
|
||||||
|
@ -572,8 +571,7 @@ public class TcModificationUtil {
|
||||||
public static TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> createPathMap(
|
public static TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> createPathMap(
|
||||||
PerTypeMapStorage<IRealBuildObjectAssociation, Set<IPath>> storage) {
|
PerTypeMapStorage<IRealBuildObjectAssociation, Set<IPath>> storage) {
|
||||||
int[] types = ObjectTypeBasedStorage.getSupportedObjectTypes();
|
int[] types = ObjectTypeBasedStorage.getSupportedObjectTypes();
|
||||||
TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(
|
TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(PathComparator.INSTANCE);
|
||||||
PathComparator.INSTANCE);
|
|
||||||
for (int i = 0; i < types.length; i++) {
|
for (int i = 0; i < types.length; i++) {
|
||||||
int type = types[i];
|
int type = types[i];
|
||||||
Map<IRealBuildObjectAssociation, Set<IPath>> map = storage.getMap(type, false);
|
Map<IRealBuildObjectAssociation, Set<IPath>> map = storage.getMap(type, false);
|
||||||
|
|
|
@ -247,8 +247,7 @@ public abstract class ToolListModification implements IToolListModification {
|
||||||
fOperations = new ModificationOperation[0];
|
fOperations = new ModificationOperation[0];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
List<ModificationOperation> opList = new ArrayList<>(
|
List<ModificationOperation> opList = new ArrayList<>(fCompatibleTools.size() + 1);
|
||||||
fCompatibleTools.size() + 1);
|
|
||||||
Set<Tool> keySet = fCompatibleTools.keySet();
|
Set<Tool> keySet = fCompatibleTools.keySet();
|
||||||
for (Tool tool : keySet) {
|
for (Tool tool : keySet) {
|
||||||
if (tool == fRealTool)
|
if (tool == fRealTool)
|
||||||
|
|
|
@ -183,8 +183,8 @@ public class CodanCorePlugin extends Plugin {
|
||||||
if (bundle != null) {
|
if (bundle != null) {
|
||||||
BundleContext context = bundle.getBundleContext();
|
BundleContext context = bundle.getBundleContext();
|
||||||
if (context != null) {
|
if (context != null) {
|
||||||
ServiceTracker<DebugOptions, DebugOptions> tracker = new ServiceTracker<>(
|
ServiceTracker<DebugOptions, DebugOptions> tracker = new ServiceTracker<>(context,
|
||||||
context, DebugOptions.class.getName(), null);
|
DebugOptions.class.getName(), null);
|
||||||
try {
|
try {
|
||||||
tracker.open();
|
tracker.open();
|
||||||
debugOptions = tracker.getService();
|
debugOptions = tracker.getService();
|
||||||
|
|
|
@ -534,16 +534,14 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
||||||
// add global provider which is not engaged
|
// add global provider which is not engaged
|
||||||
ILanguageSettingsProvider provider = new MockListenerRegisterer(PROVIDER_CUSTOM_GLOBAL,
|
ILanguageSettingsProvider provider = new MockListenerRegisterer(PROVIDER_CUSTOM_GLOBAL,
|
||||||
PROVIDER_CUSTOM_GLOBAL_NAME);
|
PROVIDER_CUSTOM_GLOBAL_NAME);
|
||||||
List<ILanguageSettingsProvider> providers = new ArrayList<>(
|
List<ILanguageSettingsProvider> providers = new ArrayList<>(workspaceProvidersOriginal);
|
||||||
workspaceProvidersOriginal);
|
|
||||||
providers.add(provider);
|
providers.add(provider);
|
||||||
LanguageSettingsManager.setWorkspaceProviders(providers);
|
LanguageSettingsManager.setWorkspaceProviders(providers);
|
||||||
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
|
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// remove global provider and restore original list
|
// remove global provider and restore original list
|
||||||
List<ILanguageSettingsProvider> providers = new ArrayList<>(
|
List<ILanguageSettingsProvider> providers = new ArrayList<>(workspaceProvidersOriginal);
|
||||||
workspaceProvidersOriginal);
|
|
||||||
LanguageSettingsManager.setWorkspaceProviders(providers);
|
LanguageSettingsManager.setWorkspaceProviders(providers);
|
||||||
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
|
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
|
||||||
}
|
}
|
||||||
|
@ -601,8 +599,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// remove global provider
|
// remove global provider
|
||||||
List<ILanguageSettingsProvider> providers = new ArrayList<>(
|
List<ILanguageSettingsProvider> providers = new ArrayList<>(workspaceProvidersOriginal);
|
||||||
workspaceProvidersOriginal);
|
|
||||||
LanguageSettingsManager.setWorkspaceProviders(providers);
|
LanguageSettingsManager.setWorkspaceProviders(providers);
|
||||||
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
|
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
|
||||||
}
|
}
|
||||||
|
|
|
@ -598,8 +598,7 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase {
|
||||||
assertNotNull(cfgDescription);
|
assertNotNull(cfgDescription);
|
||||||
|
|
||||||
// Modification SOURCE_ADDED
|
// Modification SOURCE_ADDED
|
||||||
List<ICSourceEntry> sourceEntries = new ArrayList<>(
|
List<ICSourceEntry> sourceEntries = new ArrayList<>(Arrays.asList(cfgDescription.getSourceEntries()));
|
||||||
Arrays.asList(cfgDescription.getSourceEntries()));
|
|
||||||
ICSourceEntry testSourceEntry = new CSourceEntry(project.getFullPath().append("test_src"), null,
|
ICSourceEntry testSourceEntry = new CSourceEntry(project.getFullPath().append("test_src"), null,
|
||||||
ICSettingEntry.RESOLVED);
|
ICSettingEntry.RESOLVED);
|
||||||
sourceEntries.add(testSourceEntry);
|
sourceEntries.add(testSourceEntry);
|
||||||
|
@ -648,8 +647,7 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase {
|
||||||
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
|
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
|
||||||
assertNotNull(cfgDescription);
|
assertNotNull(cfgDescription);
|
||||||
|
|
||||||
List<ICSourceEntry> sourceEntries = new ArrayList<>(
|
List<ICSourceEntry> sourceEntries = new ArrayList<>(Arrays.asList(cfgDescription.getSourceEntries()));
|
||||||
Arrays.asList(cfgDescription.getSourceEntries()));
|
|
||||||
sourceEntries.add(testSourceEntry);
|
sourceEntries.add(testSourceEntry);
|
||||||
cfgDescription.setSourceEntries(sourceEntries.toArray(new ICSourceEntry[0]));
|
cfgDescription.setSourceEntries(sourceEntries.toArray(new ICSourceEntry[0]));
|
||||||
|
|
||||||
|
|
|
@ -244,8 +244,7 @@ public class ProjectLanguageConfiguration {
|
||||||
* @param file
|
* @param file
|
||||||
*/
|
*/
|
||||||
public void setFileMappings(IFile file, Map<String, String> mappings) {
|
public void setFileMappings(IFile file, Map<String, String> mappings) {
|
||||||
fFileConfigurationMappings.put(file.getProjectRelativePath().toPortableString(),
|
fFileConfigurationMappings.put(file.getProjectRelativePath().toPortableString(), new TreeMap<>(mappings));
|
||||||
new TreeMap<>(mappings));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Map<String, String>> copyLanguageMappings(Map<String, Map<String, String>> mappings,
|
private Map<String, Map<String, String>> copyLanguageMappings(Map<String, Map<String, String>> mappings,
|
||||||
|
|
|
@ -1208,8 +1208,7 @@ public class LanguageSettingsProvidersSerializer {
|
||||||
String[] ids = ((ILanguageSettingsProvidersKeeper) cfgDescription)
|
String[] ids = ((ILanguageSettingsProvidersKeeper) cfgDescription)
|
||||||
.getDefaultLanguageSettingsProvidersIds();
|
.getDefaultLanguageSettingsProvidersIds();
|
||||||
if (ids != null) {
|
if (ids != null) {
|
||||||
List<ILanguageSettingsProvider> providers = new ArrayList<>(
|
List<ILanguageSettingsProvider> providers = new ArrayList<>(ids.length);
|
||||||
ids.length);
|
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
if (LanguageSettingsExtensionManager.isPreferShared(id)) {
|
if (LanguageSettingsExtensionManager.isPreferShared(id)) {
|
||||||
providers.add(LanguageSettingsManager.getWorkspaceProvider(id));
|
providers.add(LanguageSettingsManager.getWorkspaceProvider(id));
|
||||||
|
|
|
@ -190,8 +190,7 @@ public class XmlProjectDescriptionStorage extends AbstractCProjectDescriptionSto
|
||||||
|
|
||||||
/** A soft reference to the read-only project description
|
/** A soft reference to the read-only project description
|
||||||
* Volatile provides a memory barrier in Java 5+ */
|
* Volatile provides a memory barrier in Java 5+ */
|
||||||
private volatile Reference<ICProjectDescription> fProjectDescription = new SoftReference<>(
|
private volatile Reference<ICProjectDescription> fProjectDescription = new SoftReference<>(null);
|
||||||
null);
|
|
||||||
/** The last modification stamp of the .cproject project description file */
|
/** The last modification stamp of the .cproject project description file */
|
||||||
private volatile long projectModificaitonStamp = IResource.NULL_STAMP;
|
private volatile long projectModificaitonStamp = IResource.NULL_STAMP;
|
||||||
|
|
||||||
|
|
|
@ -153,8 +153,7 @@ public class ExternalExportProjectProvider extends AbstractExportProjectProvider
|
||||||
content.createLink(new Path(location.getAbsolutePath()), IResource.NONE, null);
|
content.createLink(new Path(location.getAbsolutePath()), IResource.NONE, null);
|
||||||
|
|
||||||
// Setup path entries
|
// Setup path entries
|
||||||
List<IPathEntry> entries = new ArrayList<>(
|
List<IPathEntry> entries = new ArrayList<>(Arrays.asList(CoreModel.getRawPathEntries(cproject)));
|
||||||
Arrays.asList(CoreModel.getRawPathEntries(cproject)));
|
|
||||||
|
|
||||||
// pre-include files
|
// pre-include files
|
||||||
for (String path : includeFiles) {
|
for (String path : includeFiles) {
|
||||||
|
|
|
@ -152,8 +152,7 @@ public class Profiler {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!profiler.counters.isEmpty()) {
|
if (!profiler.counters.isEmpty()) {
|
||||||
List<Map.Entry<String, int[]>> keyList = new ArrayList<>(
|
List<Map.Entry<String, int[]>> keyList = new ArrayList<>(profiler.counters.entrySet());
|
||||||
profiler.counters.entrySet());
|
|
||||||
Comparator<Map.Entry<String, int[]>> c2 = new Comparator<Map.Entry<String, int[]>>() {
|
Comparator<Map.Entry<String, int[]>> c2 = new Comparator<Map.Entry<String, int[]>>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(Entry<String, int[]> o1, Entry<String, int[]> o2) {
|
public int compare(Entry<String, int[]> o1, Entry<String, int[]> o2) {
|
||||||
|
|
|
@ -256,8 +256,7 @@ public class UserDefinedEnvironmentSupplier extends StorableEnvironmentLoader
|
||||||
|
|
||||||
private IEnvironmentVariable[] combineVariables(IEnvironmentVariable[] oldVariables,
|
private IEnvironmentVariable[] combineVariables(IEnvironmentVariable[] oldVariables,
|
||||||
IEnvironmentVariable[] newVariables) {
|
IEnvironmentVariable[] newVariables) {
|
||||||
Map<String, IEnvironmentVariable> vars = new HashMap<>(
|
Map<String, IEnvironmentVariable> vars = new HashMap<>(oldVariables.length + newVariables.length);
|
||||||
oldVariables.length + newVariables.length);
|
|
||||||
for (IEnvironmentVariable variable : oldVariables)
|
for (IEnvironmentVariable variable : oldVariables)
|
||||||
vars.put(variable.getName(), variable);
|
vars.put(variable.getName(), variable);
|
||||||
for (IEnvironmentVariable variable : newVariables) {
|
for (IEnvironmentVariable variable : newVariables) {
|
||||||
|
|
|
@ -131,8 +131,7 @@ public class FoldingTest extends FoldingTestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertNoKeyCollisions() {
|
private void assertNoKeyCollisions() {
|
||||||
ProjectionAnnotationModel model = fEditor
|
ProjectionAnnotationModel model = fEditor.getAdapter(ProjectionAnnotationModel.class);
|
||||||
.getAdapter(ProjectionAnnotationModel.class);
|
|
||||||
assertNotNull(model);
|
assertNotNull(model);
|
||||||
int annotations = 0;
|
int annotations = 0;
|
||||||
Set<Object> keys = new HashSet<>();
|
Set<Object> keys = new HashSet<>();
|
||||||
|
|
|
@ -253,8 +253,7 @@ abstract public class FoldingTestBase extends BaseUITestCase {
|
||||||
|
|
||||||
protected PositionAndCollapsed[] getFoldingPositions() {
|
protected PositionAndCollapsed[] getFoldingPositions() {
|
||||||
List<PositionAndCollapsed> positionAndCollapseds = new ArrayList<>();
|
List<PositionAndCollapsed> positionAndCollapseds = new ArrayList<>();
|
||||||
ProjectionAnnotationModel model = fEditor
|
ProjectionAnnotationModel model = fEditor.getAdapter(ProjectionAnnotationModel.class);
|
||||||
.getAdapter(ProjectionAnnotationModel.class);
|
|
||||||
assertNotNull(model);
|
assertNotNull(model);
|
||||||
for (Iterator<Annotation> iter = model.getAnnotationIterator(); iter.hasNext();) {
|
for (Iterator<Annotation> iter = model.getAnnotationIterator(); iter.hasNext();) {
|
||||||
Annotation ann = iter.next();
|
Annotation ann = iter.next();
|
||||||
|
|
|
@ -1344,8 +1344,7 @@ public class CEditor extends TextEditor
|
||||||
* AST reconciling listeners.
|
* AST reconciling listeners.
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
private final ListenerList<ICReconcilingListener> fReconcilingListeners = new ListenerList<>(
|
private final ListenerList<ICReconcilingListener> fReconcilingListeners = new ListenerList<>(ListenerList.IDENTITY);
|
||||||
ListenerList.IDENTITY);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Semantic highlighting manager
|
* Semantic highlighting manager
|
||||||
|
|
|
@ -57,8 +57,7 @@ class EclipsePreferencesAdapter implements IPreferenceStore {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Listeners on on this adapter */
|
/** Listeners on on this adapter */
|
||||||
private ListenerList<IPropertyChangeListener> fListeners = new ListenerList<>(
|
private ListenerList<IPropertyChangeListener> fListeners = new ListenerList<>(ListenerList.IDENTITY);
|
||||||
ListenerList.IDENTITY);
|
|
||||||
|
|
||||||
/** Listener on the node */
|
/** Listener on the node */
|
||||||
private IEclipsePreferences.IPreferenceChangeListener fListener = new PreferenceChangeListener();
|
private IEclipsePreferences.IPreferenceChangeListener fListener = new PreferenceChangeListener();
|
||||||
|
|
|
@ -253,8 +253,7 @@ public class ProjectLanguageMappingWidget extends LanguageMappingWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fChild != null) {
|
if (fChild != null) {
|
||||||
Set<String> overrides = new HashSet<>(
|
Set<String> overrides = new HashSet<>(createWorkspaceContentTypeFilter(fConfigurationContentTypeMappings));
|
||||||
createWorkspaceContentTypeFilter(fConfigurationContentTypeMappings));
|
|
||||||
fChild.setOverriddenContentTypes(overrides);
|
fChild.setOverriddenContentTypes(overrides);
|
||||||
fChild.refreshMappings();
|
fChild.refreshMappings();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1190,8 +1190,7 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
|
||||||
IResource rc = getResource();
|
IResource rc = getResource();
|
||||||
List<ILanguageSettingsProvider> oldProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription)
|
List<ILanguageSettingsProvider> oldProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription)
|
||||||
.getLanguageSettingProviders();
|
.getLanguageSettingProviders();
|
||||||
List<ILanguageSettingsProvider> newProviders = new ArrayList<>(
|
List<ILanguageSettingsProvider> newProviders = new ArrayList<>(oldProviders.size());
|
||||||
oldProviders.size());
|
|
||||||
|
|
||||||
// clear entries for a given resource for all languages where applicable
|
// clear entries for a given resource for all languages where applicable
|
||||||
providers: for (ILanguageSettingsProvider provider : oldProviders) {
|
providers: for (ILanguageSettingsProvider provider : oldProviders) {
|
||||||
|
|
|
@ -74,8 +74,7 @@ abstract class AbstractWorkingSetConfigsContribution extends CompoundContributio
|
||||||
}
|
}
|
||||||
|
|
||||||
// sort the configurations by name
|
// sort the configurations by name
|
||||||
List<IWorkingSetConfiguration> configs = new java.util.ArrayList<>(
|
List<IWorkingSetConfiguration> configs = new java.util.ArrayList<>(getWorkingSet().getConfigurations());
|
||||||
getWorkingSet().getConfigurations());
|
|
||||||
Collections.sort(configs, configOrdering);
|
Collections.sort(configs, configOrdering);
|
||||||
|
|
||||||
IContributionItem[] result = new IContributionItem[configs.size()];
|
IContributionItem[] result = new IContributionItem[configs.size()];
|
||||||
|
|
|
@ -210,8 +210,7 @@ public interface IWorkingSetProjectConfigurationFactory {
|
||||||
// first pass to populate the map with immediate requireds
|
// first pass to populate the map with immediate requireds
|
||||||
IWorkspace ws = ResourcesPlugin.getWorkspace();
|
IWorkspace ws = ResourcesPlugin.getWorkspace();
|
||||||
for (IProjectNatureDescriptor next : ws.getNatureDescriptors()) {
|
for (IProjectNatureDescriptor next : ws.getNatureDescriptors()) {
|
||||||
result.put(next.getNatureId(),
|
result.put(next.getNatureId(), new java.util.HashSet<>(Arrays.asList(next.getRequiredNatureIds())));
|
||||||
new java.util.HashSet<>(Arrays.asList(next.getRequiredNatureIds())));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// now, iterate to add transitive requireds
|
// now, iterate to add transitive requireds
|
||||||
|
|
|
@ -181,8 +181,7 @@ public class WorkingSetConfiguration implements IWorkingSetConfiguration {
|
||||||
public IStatus build(IProgressMonitor monitor) {
|
public IStatus build(IProgressMonitor monitor) {
|
||||||
MultiStatus result = new MultiStatus(CUIPlugin.PLUGIN_ID, 0, WorkingSetMessages.WSConfig_build_problems, null);
|
MultiStatus result = new MultiStatus(CUIPlugin.PLUGIN_ID, 0, WorkingSetMessages.WSConfig_build_problems, null);
|
||||||
|
|
||||||
List<IWorkingSetProjectConfiguration> toBuild = new java.util.ArrayList<>(
|
List<IWorkingSetProjectConfiguration> toBuild = new java.util.ArrayList<>(getProjectConfigurations().size());
|
||||||
getProjectConfigurations().size());
|
|
||||||
for (IWorkingSetProjectConfiguration next : getProjectConfigurations()) {
|
for (IWorkingSetProjectConfiguration next : getProjectConfigurations()) {
|
||||||
IProject project = next.resolveProject();
|
IProject project = next.resolveProject();
|
||||||
|
|
||||||
|
|
|
@ -89,8 +89,7 @@ public class CHelpConfigurationPropertyPage extends PropertyPage implements IWor
|
||||||
/* 0 */ CUIMessages.CHelpConfigurationPropertyPage_buttonLabels_CheckAll,
|
/* 0 */ CUIMessages.CHelpConfigurationPropertyPage_buttonLabels_CheckAll,
|
||||||
/* 1 */ CUIMessages.CHelpConfigurationPropertyPage_buttonLabels_UncheckAll };
|
/* 1 */ CUIMessages.CHelpConfigurationPropertyPage_buttonLabels_UncheckAll };
|
||||||
|
|
||||||
fCHelpBookList = new CheckedListDialogField<>(null, buttonLabels,
|
fCHelpBookList = new CheckedListDialogField<>(null, buttonLabels, new CHelpBookListLabelProvider());
|
||||||
new CHelpBookListLabelProvider());
|
|
||||||
fCHelpBookList.setLabelText(CUIMessages.CHelpConfigurationPropertyPage_HelpBooks);
|
fCHelpBookList.setLabelText(CUIMessages.CHelpConfigurationPropertyPage_HelpBooks);
|
||||||
fCHelpBookList.setCheckAllButtonIndex(0);
|
fCHelpBookList.setCheckAllButtonIndex(0);
|
||||||
fCHelpBookList.setUncheckAllButtonIndex(1);
|
fCHelpBookList.setUncheckAllButtonIndex(1);
|
||||||
|
|
|
@ -81,8 +81,7 @@ public class TemplateClassWizard extends TemplatesChoiceWizard implements INewWi
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Template[] getTemplates() {
|
public Template[] getTemplates() {
|
||||||
SortedSet<TemplateCore> templateList = new TreeSet<>(
|
SortedSet<TemplateCore> templateList = new TreeSet<>(TemplateCore.TEMPLATE_ID_CASE_INSENSITIVE_COMPARATOR);
|
||||||
TemplateCore.TEMPLATE_ID_CASE_INSENSITIVE_COMPARATOR);
|
|
||||||
templateList.addAll(Arrays.asList(TemplateEngineUI.getDefault().getTemplates()));
|
templateList.addAll(Arrays.asList(TemplateEngineUI.getDefault().getTemplates()));
|
||||||
return templateList.toArray(new Template[templateList.size()]);
|
return templateList.toArray(new Template[templateList.size()]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,6 @@ public class TemplateInputDialog extends Dialog {
|
||||||
setShellStyle(getShellStyle() | SWT.RESIZE);
|
setShellStyle(getShellStyle() | SWT.RESIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureShell(Shell shell) {
|
protected void configureShell(Shell shell) {
|
||||||
super.configureShell(shell);
|
super.configureShell(shell);
|
||||||
|
@ -108,7 +107,6 @@ public class TemplateInputDialog extends Dialog {
|
||||||
display = shell.getDisplay();
|
display = shell.getDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Control createDialogArea(Composite parent) {
|
protected Control createDialogArea(Composite parent) {
|
||||||
|
|
||||||
|
@ -216,7 +214,6 @@ public class TemplateInputDialog extends Dialog {
|
||||||
aText.addModifyListener(mListener);
|
aText.addModifyListener(mListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void okPressed() {
|
protected void okPressed() {
|
||||||
if (option == TemplatePreferencePage.OPTION_ADD) {
|
if (option == TemplatePreferencePage.OPTION_ADD) {
|
||||||
|
|
|
@ -127,8 +127,8 @@ public class Trace {
|
||||||
if (bundle != null) {
|
if (bundle != null) {
|
||||||
BundleContext context = bundle.getBundleContext();
|
BundleContext context = bundle.getBundleContext();
|
||||||
if (context != null) {
|
if (context != null) {
|
||||||
ServiceTracker<DebugOptions, DebugOptions> tracker = new ServiceTracker<>(
|
ServiceTracker<DebugOptions, DebugOptions> tracker = new ServiceTracker<>(context,
|
||||||
context, DebugOptions.class.getName(), null);
|
DebugOptions.class.getName(), null);
|
||||||
try {
|
try {
|
||||||
tracker.open();
|
tracker.open();
|
||||||
DebugOptions debugOptions = tracker.getService();
|
DebugOptions debugOptions = tracker.getService();
|
||||||
|
|
|
@ -313,8 +313,7 @@ public class CSourceNotFoundEditor extends CommonSourceNotFoundEditor {
|
||||||
|
|
||||||
private void addSourceMappingToDirector(String missingPath, IPath newSourcePath,
|
private void addSourceMappingToDirector(String missingPath, IPath newSourcePath,
|
||||||
AbstractSourceLookupDirector director) throws CoreException {
|
AbstractSourceLookupDirector director) throws CoreException {
|
||||||
ArrayList<ISourceContainer> containerList = new ArrayList<>(
|
ArrayList<ISourceContainer> containerList = new ArrayList<>(Arrays.asList(director.getSourceContainers()));
|
||||||
Arrays.asList(director.getSourceContainers()));
|
|
||||||
MappingSourceContainer foundMappings = null;
|
MappingSourceContainer foundMappings = null;
|
||||||
for (ISourceContainer container : containerList) {
|
for (ISourceContainer container : containerList) {
|
||||||
if (container instanceof MappingSourceContainer) {
|
if (container instanceof MappingSourceContainer) {
|
||||||
|
|
|
@ -77,8 +77,7 @@ public class SourceFilesViewer extends BaseViewer {
|
||||||
/** Tradeoff expensiveness of checking filesystem against likelihood
|
/** Tradeoff expensiveness of checking filesystem against likelihood
|
||||||
* that files will be added/removed/changed in the given time period */
|
* that files will be added/removed/changed in the given time period */
|
||||||
static final long FILE_CHECK_DELTA = 30 * 1000;
|
static final long FILE_CHECK_DELTA = 30 * 1000;
|
||||||
private static LRUCache<Object, TranslationUnitInfo> translationUnitInfoCache = new LRUCache<>(
|
private static LRUCache<Object, TranslationUnitInfo> translationUnitInfoCache = new LRUCache<>(1024);
|
||||||
1024);
|
|
||||||
|
|
||||||
public SourceFilesViewer(ExecutablesView view, Composite parent, int style) {
|
public SourceFilesViewer(ExecutablesView view, Composite parent, int style) {
|
||||||
super(view, parent, style);
|
super(view, parent, style);
|
||||||
|
|
|
@ -662,8 +662,7 @@ public class GDBPatternMatchingExpressions extends AbstractDsfService implements
|
||||||
// Not only does selecting the element jump back and forth between the duplicates,
|
// Not only does selecting the element jump back and forth between the duplicates,
|
||||||
// but children of duplicated elements are not always right. Because of this, we
|
// but children of duplicated elements are not always right. Because of this, we
|
||||||
// remove all duplicates here.
|
// remove all duplicates here.
|
||||||
LinkedHashSet<IExpressionDMContext> uniqueSubExprSet = new LinkedHashSet<>(
|
LinkedHashSet<IExpressionDMContext> uniqueSubExprSet = new LinkedHashSet<>(subExprList);
|
||||||
subExprList);
|
|
||||||
subExprList.clear();
|
subExprList.clear();
|
||||||
subExprList.addAll(uniqueSubExprSet);
|
subExprList.addAll(uniqueSubExprSet);
|
||||||
|
|
||||||
|
@ -776,8 +775,7 @@ public class GDBPatternMatchingExpressions extends AbstractDsfService implements
|
||||||
matchArrays(exprDmc, new ImmediateDataRequestMonitor<List<IExpressionDMContext>>(rm) {
|
matchArrays(exprDmc, new ImmediateDataRequestMonitor<List<IExpressionDMContext>>(rm) {
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
final List<IExpressionDMContext> exprList = getData() != null ? getData()
|
final List<IExpressionDMContext> exprList = getData() != null ? getData() : new ArrayList<>();
|
||||||
: new ArrayList<>();
|
|
||||||
matchLocals(exprDmc, new ImmediateDataRequestMonitor<List<IExpressionDMContext>>(rm) {
|
matchLocals(exprDmc, new ImmediateDataRequestMonitor<List<IExpressionDMContext>>(rm) {
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
|
@ -865,8 +863,7 @@ public class GDBPatternMatchingExpressions extends AbstractDsfService implements
|
||||||
final CountingRequestMonitor varNameCRM = new CountingRequestMonitor(getExecutor(), rm) {
|
final CountingRequestMonitor varNameCRM = new CountingRequestMonitor(getExecutor(), rm) {
|
||||||
@Override
|
@Override
|
||||||
public void handleSuccess() {
|
public void handleSuccess() {
|
||||||
ArrayList<IExpressionDMContext> matches = new ArrayList<>(
|
ArrayList<IExpressionDMContext> matches = new ArrayList<>(localsDMData.length);
|
||||||
localsDMData.length);
|
|
||||||
|
|
||||||
String fullExpr = globDmc.getExpression().trim();
|
String fullExpr = globDmc.getExpression().trim();
|
||||||
if (fullExpr.startsWith(GLOB_EXPRESSION_PREFIX)) {
|
if (fullExpr.startsWith(GLOB_EXPRESSION_PREFIX)) {
|
||||||
|
|
|
@ -2595,8 +2595,7 @@ public class GDBRunControl_7_0_NS extends AbstractDsfService
|
||||||
Set<IExecutionDMContext> specifiedExedDmcSet = new HashSet<>(Arrays.asList(contexts));
|
Set<IExecutionDMContext> specifiedExedDmcSet = new HashSet<>(Arrays.asList(contexts));
|
||||||
|
|
||||||
// A list that ignores threads for which the process is also present
|
// A list that ignores threads for which the process is also present
|
||||||
List<IExecutionDMContext> execDmcForOperationList = new ArrayList<>(
|
List<IExecutionDMContext> execDmcForOperationList = new ArrayList<>(specifiedExedDmcSet.size());
|
||||||
specifiedExedDmcSet.size());
|
|
||||||
|
|
||||||
// Check for the case of a process selected along with some of its threads
|
// Check for the case of a process selected along with some of its threads
|
||||||
for (IExecutionDMContext execDmc : specifiedExedDmcSet) {
|
for (IExecutionDMContext execDmc : specifiedExedDmcSet) {
|
||||||
|
|
|
@ -170,8 +170,7 @@ public class SyncUtil {
|
||||||
|
|
||||||
public static MIStoppedEvent step(final IExecutionDMContext dmc, final StepType stepType, boolean reverse,
|
public static MIStoppedEvent step(final IExecutionDMContext dmc, final StepType stepType, boolean reverse,
|
||||||
int massagedTimeout) throws Throwable {
|
int massagedTimeout) throws Throwable {
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
|
||||||
MIStoppedEvent.class);
|
|
||||||
|
|
||||||
if (!reverse) {
|
if (!reverse) {
|
||||||
fRunControl.getExecutor().submit(new Runnable() {
|
fRunControl.getExecutor().submit(new Runnable() {
|
||||||
|
@ -280,8 +279,7 @@ public class SyncUtil {
|
||||||
|
|
||||||
private static MIStoppedEvent resumeUntilStopped(final IExecutionDMContext dmc, int massagedTimeout)
|
private static MIStoppedEvent resumeUntilStopped(final IExecutionDMContext dmc, int massagedTimeout)
|
||||||
throws Throwable {
|
throws Throwable {
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
|
||||||
MIStoppedEvent.class);
|
|
||||||
|
|
||||||
fRunControl.getExecutor().submit(new Runnable() {
|
fRunControl.getExecutor().submit(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -308,8 +306,7 @@ public class SyncUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MIRunningEvent resume(final IExecutionDMContext dmc, int massagedTimeout) throws Throwable {
|
public static MIRunningEvent resume(final IExecutionDMContext dmc, int massagedTimeout) throws Throwable {
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIRunningEvent.class);
|
||||||
MIRunningEvent.class);
|
|
||||||
|
|
||||||
fRunControl.getExecutor().submit(new Runnable() {
|
fRunControl.getExecutor().submit(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -378,8 +375,7 @@ public class SyncUtil {
|
||||||
// if there is a sleep in the code between the resume and the time
|
// if there is a sleep in the code between the resume and the time
|
||||||
// it stops; this will give us plenty of time to call this method.
|
// it stops; this will give us plenty of time to call this method.
|
||||||
public static MIStoppedEvent waitForStop(int timeout) throws Throwable {
|
public static MIStoppedEvent waitForStop(int timeout) throws Throwable {
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
|
||||||
MIStoppedEvent.class);
|
|
||||||
|
|
||||||
// Wait for the execution to suspend
|
// Wait for the execution to suspend
|
||||||
return eventWaitor.waitForEvent(TestsPlugin.massageTimeout(timeout));
|
return eventWaitor.waitForEvent(TestsPlugin.massageTimeout(timeout));
|
||||||
|
@ -778,8 +774,7 @@ public class SyncUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now wait for the stopped event of the restart
|
// Now wait for the stopped event of the restart
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
|
||||||
MIStoppedEvent.class);
|
|
||||||
|
|
||||||
// Perform the restart
|
// Perform the restart
|
||||||
Query<IContainerDMContext> query2 = new Query<IContainerDMContext>() {
|
Query<IContainerDMContext> query2 = new Query<IContainerDMContext>() {
|
||||||
|
|
|
@ -97,8 +97,8 @@ public class CommandTimeoutTest extends BaseParametrizedTestCase {
|
||||||
doLaunch();
|
doLaunch();
|
||||||
|
|
||||||
final DsfSession session = getGDBLaunch().getSession();
|
final DsfSession session = getGDBLaunch().getSession();
|
||||||
ServiceEventWaitor<ICommandControlShutdownDMEvent> shutdownEventWaitor = new ServiceEventWaitor<>(
|
ServiceEventWaitor<ICommandControlShutdownDMEvent> shutdownEventWaitor = new ServiceEventWaitor<>(session,
|
||||||
session, ICommandControlShutdownDMEvent.class);
|
ICommandControlShutdownDMEvent.class);
|
||||||
|
|
||||||
// Send the command that will timeout
|
// Send the command that will timeout
|
||||||
Query<MIInfo> query = new Query<MIInfo>() {
|
Query<MIInfo> query = new Query<MIInfo>() {
|
||||||
|
|
|
@ -714,8 +714,7 @@ public class LaunchConfigurationAndRestartTest extends BaseParametrizedTestCase
|
||||||
|
|
||||||
// Now step backwards to make sure reverse was enabled
|
// Now step backwards to make sure reverse was enabled
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
|
||||||
MIStoppedEvent.class);
|
|
||||||
|
|
||||||
final int REVERSE_NUM_STEPS = 2;
|
final int REVERSE_NUM_STEPS = 2;
|
||||||
final IExecutionDMContext execDmc = stoppedEvent.getDMContext();
|
final IExecutionDMContext execDmc = stoppedEvent.getDMContext();
|
||||||
|
@ -780,8 +779,7 @@ public class LaunchConfigurationAndRestartTest extends BaseParametrizedTestCase
|
||||||
frame.getFunction().equals("stopAtOther"));
|
frame.getFunction().equals("stopAtOther"));
|
||||||
|
|
||||||
// Now step backwards all the way to the start to make sure reverse was enabled from the very start
|
// Now step backwards all the way to the start to make sure reverse was enabled from the very start
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
|
||||||
MIStoppedEvent.class);
|
|
||||||
|
|
||||||
final int REVERSE_NUM_STEPS = 3;
|
final int REVERSE_NUM_STEPS = 3;
|
||||||
Query<MIInfo> query2 = new Query<MIInfo>() {
|
Query<MIInfo> query2 = new Query<MIInfo>() {
|
||||||
|
@ -854,8 +852,7 @@ public class LaunchConfigurationAndRestartTest extends BaseParametrizedTestCase
|
||||||
frame.getFunction().equals("main") && frame.getLine() == LAST_LINE_IN_MAIN);
|
frame.getFunction().equals("main") && frame.getLine() == LAST_LINE_IN_MAIN);
|
||||||
|
|
||||||
// Now step backwards all the way to the start to make sure reverse was enabled from the very start
|
// Now step backwards all the way to the start to make sure reverse was enabled from the very start
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
|
||||||
MIStoppedEvent.class);
|
|
||||||
|
|
||||||
final int REVERSE_NUM_STEPS = 3;
|
final int REVERSE_NUM_STEPS = 3;
|
||||||
Query<MIInfo> query2 = new Query<MIInfo>() {
|
Query<MIInfo> query2 = new Query<MIInfo>() {
|
||||||
|
|
|
@ -1302,8 +1302,7 @@ public class MICatchpointsTest extends BaseParametrizedTestCase {
|
||||||
assertEquals("Unexpected number of breakpoint-added events", 1, getBreakpointEventCount(BP_ADDED));
|
assertEquals("Unexpected number of breakpoint-added events", 1, getBreakpointEventCount(BP_ADDED));
|
||||||
|
|
||||||
// Ensure the breakpoint service sees what we expect
|
// Ensure the breakpoint service sees what we expect
|
||||||
List<IBreakpointDMContext> bkptsAfter = new LinkedList<>(
|
List<IBreakpointDMContext> bkptsAfter = new LinkedList<>(Arrays.asList(getBreakpoints(fBreakpointsDmc)));
|
||||||
Arrays.asList(getBreakpoints(fBreakpointsDmc)));
|
|
||||||
assertEquals("Breakpoints service reports unexpected number of breakpoints", bkptsBefore.length + 1,
|
assertEquals("Breakpoints service reports unexpected number of breakpoints", bkptsBefore.length + 1,
|
||||||
bkptsAfter.size());
|
bkptsAfter.size());
|
||||||
|
|
||||||
|
@ -1361,8 +1360,7 @@ public class MICatchpointsTest extends BaseParametrizedTestCase {
|
||||||
// Ensure the breakpoint service sees what we expect. Ask the breakpoint
|
// Ensure the breakpoint service sees what we expect. Ask the breakpoint
|
||||||
// service for the list of breakpoint against and make sure it differs
|
// service for the list of breakpoint against and make sure it differs
|
||||||
// only by the newly added one
|
// only by the newly added one
|
||||||
List<IBreakpointDMContext> bkptsAfter = new LinkedList<>(
|
List<IBreakpointDMContext> bkptsAfter = new LinkedList<>(Arrays.asList(getBreakpoints(fBreakpointsDmc)));
|
||||||
Arrays.asList(getBreakpoints(fBreakpointsDmc)));
|
|
||||||
assertEquals("Breakpoints service reports unexpected number of breakpoints", bkptsBefore.length + 1,
|
assertEquals("Breakpoints service reports unexpected number of breakpoints", bkptsBefore.length + 1,
|
||||||
bkptsAfter.size());
|
bkptsAfter.size());
|
||||||
ListIterator<IBreakpointDMContext> iter = bkptsAfter.listIterator();
|
ListIterator<IBreakpointDMContext> iter = bkptsAfter.listIterator();
|
||||||
|
|
|
@ -224,8 +224,8 @@ public class MIModifiedServicesTest extends BaseParametrizedTestCase {
|
||||||
|
|
||||||
private void resumeContainerContextExe() throws InterruptedException, ExecutionException, TimeoutException {
|
private void resumeContainerContextExe() throws InterruptedException, ExecutionException, TimeoutException {
|
||||||
|
|
||||||
final ServiceEventWaitor<IResumedDMEvent> resumedWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<IResumedDMEvent> resumedWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
||||||
getGDBLaunch().getSession(), IResumedDMEvent.class);
|
IResumedDMEvent.class);
|
||||||
|
|
||||||
Query<Void> query = new Query<Void>() {
|
Query<Void> query = new Query<Void>() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -413,8 +413,8 @@ public class MIRegistersTest extends BaseParametrizedTestCase {
|
||||||
*/
|
*/
|
||||||
private List<IRegistersChangedDMEvent> writeRegisterWaitNotication(final IRegisterDMContext registerDmc,
|
private List<IRegistersChangedDMEvent> writeRegisterWaitNotication(final IRegisterDMContext registerDmc,
|
||||||
final String regValue, final String formatId) throws Throwable {
|
final String regValue, final String formatId) throws Throwable {
|
||||||
ServiceEventWaitor<IRegistersChangedDMEvent> eventWaitor = new ServiceEventWaitor<>(
|
ServiceEventWaitor<IRegistersChangedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
||||||
fSession, IRegistersChangedDMEvent.class);
|
IRegistersChangedDMEvent.class);
|
||||||
|
|
||||||
writeRegister(registerDmc, regValue, formatId);
|
writeRegister(registerDmc, regValue, formatId);
|
||||||
|
|
||||||
|
|
|
@ -372,8 +372,7 @@ public class MIRunControlTargetAvailableTest extends BaseParametrizedTestCase {
|
||||||
// Wait up to 3 second for the target to suspend. Should happen within two seconds.
|
// Wait up to 3 second for the target to suspend. Should happen within two seconds.
|
||||||
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
|
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
|
||||||
|
|
||||||
suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(), ISuspendedDMEvent.class);
|
||||||
ISuspendedDMEvent.class);
|
|
||||||
|
|
||||||
SyncUtil.resume();
|
SyncUtil.resume();
|
||||||
|
|
||||||
|
@ -575,8 +574,7 @@ public class MIRunControlTargetAvailableTest extends BaseParametrizedTestCase {
|
||||||
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
|
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
|
||||||
|
|
||||||
// Now resume the target and check that we stop at all the breakpoints.
|
// Now resume the target and check that we stop at all the breakpoints.
|
||||||
suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(), ISuspendedDMEvent.class);
|
||||||
ISuspendedDMEvent.class);
|
|
||||||
|
|
||||||
SyncUtil.resume();
|
SyncUtil.resume();
|
||||||
}
|
}
|
||||||
|
@ -707,8 +705,7 @@ public class MIRunControlTargetAvailableTest extends BaseParametrizedTestCase {
|
||||||
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
|
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
|
||||||
|
|
||||||
// Now resume the target and check that we stop at all the breakpoints.
|
// Now resume the target and check that we stop at all the breakpoints.
|
||||||
suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(), ISuspendedDMEvent.class);
|
||||||
ISuspendedDMEvent.class);
|
|
||||||
|
|
||||||
SyncUtil.resume();
|
SyncUtil.resume();
|
||||||
}
|
}
|
||||||
|
@ -835,8 +832,7 @@ public class MIRunControlTargetAvailableTest extends BaseParametrizedTestCase {
|
||||||
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
|
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
|
||||||
|
|
||||||
// Now resume the target and check that we stop at all the breakpoints.
|
// Now resume the target and check that we stop at all the breakpoints.
|
||||||
suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(), ISuspendedDMEvent.class);
|
||||||
ISuspendedDMEvent.class);
|
|
||||||
|
|
||||||
SyncUtil.resume();
|
SyncUtil.resume();
|
||||||
}
|
}
|
||||||
|
|
|
@ -580,8 +580,8 @@ public class MIRunControlTest extends BaseParametrizedTestCase {
|
||||||
//TestsPlugin.debug("handleCompleted over");
|
//TestsPlugin.debug("handleCompleted over");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
final ServiceEventWaitor<IResumedDMEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<IResumedDMEvent> eventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
||||||
getGDBLaunch().getSession(), IResumedDMEvent.class);
|
IResumedDMEvent.class);
|
||||||
|
|
||||||
final IContainerDMContext containerDmc = SyncUtil.getContainerContext();
|
final IContainerDMContext containerDmc = SyncUtil.getContainerContext();
|
||||||
|
|
||||||
|
@ -629,8 +629,8 @@ public class MIRunControlTest extends BaseParametrizedTestCase {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
final ServiceEventWaitor<IResumedDMEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<IResumedDMEvent> eventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
||||||
getGDBLaunch().getSession(), IResumedDMEvent.class);
|
IResumedDMEvent.class);
|
||||||
|
|
||||||
fRunCtrl.getExecutor().submit(new Runnable() {
|
fRunCtrl.getExecutor().submit(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -215,8 +215,8 @@ public class OperationsWhileTargetIsRunningTest extends BaseParametrizedTestCase
|
||||||
// then we terminate the process, and confirm that there are no more processes
|
// then we terminate the process, and confirm that there are no more processes
|
||||||
SyncUtil.resume();
|
SyncUtil.resume();
|
||||||
|
|
||||||
ServiceEventWaitor<IExitedDMEvent> exitedEventWaitor = new ServiceEventWaitor<>(
|
ServiceEventWaitor<IExitedDMEvent> exitedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
||||||
getGDBLaunch().getSession(), IExitedDMEvent.class);
|
IExitedDMEvent.class);
|
||||||
|
|
||||||
Query<Object> query = new Query<Object>() {
|
Query<Object> query = new Query<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -297,8 +297,8 @@ public class OperationsWhileTargetIsRunningTest extends BaseParametrizedTestCase
|
||||||
// then we detach the process, and confirm that we are not longer running
|
// then we detach the process, and confirm that we are not longer running
|
||||||
SyncUtil.resume();
|
SyncUtil.resume();
|
||||||
|
|
||||||
ServiceEventWaitor<IExitedDMEvent> exitedEventWaitor = new ServiceEventWaitor<>(
|
ServiceEventWaitor<IExitedDMEvent> exitedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
|
||||||
getGDBLaunch().getSession(), IExitedDMEvent.class);
|
IExitedDMEvent.class);
|
||||||
|
|
||||||
Query<Object> query = new Query<Object>() {
|
Query<Object> query = new Query<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -353,8 +353,7 @@ public class SourceLookupTest extends BaseParametrizedTestCase {
|
||||||
protected void addSourceContainer(AbstractSourceLookupDirector director, ISourceContainer container)
|
protected void addSourceContainer(AbstractSourceLookupDirector director, ISourceContainer container)
|
||||||
throws CoreException {
|
throws CoreException {
|
||||||
|
|
||||||
ArrayList<ISourceContainer> containerList = new ArrayList<>(
|
ArrayList<ISourceContainer> containerList = new ArrayList<>(Arrays.asList(director.getSourceContainers()));
|
||||||
Arrays.asList(director.getSourceContainers()));
|
|
||||||
container.init(director);
|
container.init(director);
|
||||||
containerList.add(container);
|
containerList.add(container);
|
||||||
director.setSourceContainers(containerList.toArray(new ISourceContainer[containerList.size()]));
|
director.setSourceContainers(containerList.toArray(new ISourceContainer[containerList.size()]));
|
||||||
|
|
|
@ -186,8 +186,7 @@ public class StepIntoSelectionTest extends BaseParametrizedTestCase {
|
||||||
*/
|
*/
|
||||||
private ISuspendedDMEvent triggerStepIntoSelection(final IExecutionDMContext exeContext, final String sourceName,
|
private ISuspendedDMEvent triggerStepIntoSelection(final IExecutionDMContext exeContext, final String sourceName,
|
||||||
final int targetLine, final IFunctionDeclaration function, final boolean skipBreakPoints) throws Throwable {
|
final int targetLine, final IFunctionDeclaration function, final boolean skipBreakPoints) throws Throwable {
|
||||||
ServiceEventWaitor<ISuspendedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
ServiceEventWaitor<ISuspendedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession, ISuspendedDMEvent.class);
|
||||||
ISuspendedDMEvent.class);
|
|
||||||
|
|
||||||
Query<Object> query = new Query<Object>() {
|
Query<Object> query = new Query<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -207,8 +206,7 @@ public class StepIntoSelectionTest extends BaseParametrizedTestCase {
|
||||||
*/
|
*/
|
||||||
private ISuspendedDMEvent triggerRunToLine(final IExecutionDMContext exeContext, final String sourceName,
|
private ISuspendedDMEvent triggerRunToLine(final IExecutionDMContext exeContext, final String sourceName,
|
||||||
final int targetLine, final boolean skipBreakPoints) throws Throwable {
|
final int targetLine, final boolean skipBreakPoints) throws Throwable {
|
||||||
ServiceEventWaitor<ISuspendedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
|
ServiceEventWaitor<ISuspendedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession, ISuspendedDMEvent.class);
|
||||||
ISuspendedDMEvent.class);
|
|
||||||
|
|
||||||
Query<Object> query = new Query<Object>() {
|
Query<Object> query = new Query<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -353,8 +353,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -463,8 +463,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -577,8 +577,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -696,8 +696,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
||||||
assertTrue("Expected a single thread but got " + threads.length, threads.length == 1);
|
assertTrue("Expected a single thread but got " + threads.length, threads.length == 1);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -767,8 +767,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -777,8 +777,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
||||||
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
|
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -819,8 +819,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -829,8 +829,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
||||||
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
|
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -862,8 +862,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -876,8 +876,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
||||||
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
|
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -910,8 +910,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -927,8 +927,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
|
||||||
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
|
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -1000,8 +1000,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
});
|
});
|
||||||
assertFalse("expected no threads to be suspended, but found some", result);
|
assertFalse("expected no threads to be suspended, but found some", result);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1031,8 +1031,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -1069,8 +1069,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -1113,8 +1113,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -1169,8 +1169,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -1444,8 +1444,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -1553,8 +1553,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -1666,8 +1666,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -1996,8 +1996,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2109,8 +2109,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2227,8 +2227,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2345,8 +2345,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2471,8 +2471,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2585,8 +2585,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2703,8 +2703,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2824,8 +2824,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
public void testResumeProcessOneThreadStopped() throws Throwable {
|
public void testResumeProcessOneThreadStopped() throws Throwable {
|
||||||
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
|
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -2894,8 +2894,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2903,8 +2903,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
|
|
||||||
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
|
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -2936,8 +2936,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2949,8 +2949,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
|
|
||||||
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
|
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -2983,8 +2983,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -2999,8 +2999,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
|
|
||||||
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
|
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -3082,8 +3082,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
});
|
});
|
||||||
assertFalse("expected no process to be suspended, but found some", result);
|
assertFalse("expected no process to be suspended, but found some", result);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -3113,8 +3113,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3162,8 +3162,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3217,8 +3217,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3302,8 +3302,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
||||||
SyncUtil.getExecutionContext(0) };
|
SyncUtil.getExecutionContext(0) };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -3347,8 +3347,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
});
|
});
|
||||||
assertFalse("expected no contexts to be suspended, but found some", result);
|
assertFalse("expected no contexts to be suspended, but found some", result);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running processes
|
// No error should be thrown, the call should ignore running processes
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -3381,8 +3381,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3391,8 +3391,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
||||||
SyncUtil.getExecutionContext(0) };
|
SyncUtil.getExecutionContext(0) };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -3427,8 +3427,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3441,8 +3441,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
||||||
SyncUtil.getExecutionContext(0) };
|
SyncUtil.getExecutionContext(0) };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -3477,8 +3477,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3491,8 +3491,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
||||||
SyncUtil.getExecutionContext(1) };
|
SyncUtil.getExecutionContext(1) };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -3526,8 +3526,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3543,8 +3543,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
||||||
SyncUtil.getExecutionContext(0) };
|
SyncUtil.getExecutionContext(0) };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -3650,8 +3650,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
});
|
});
|
||||||
assertFalse("expected no process to be suspended, but found some", result);
|
assertFalse("expected no process to be suspended, but found some", result);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -3682,8 +3682,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3733,8 +3733,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3790,8 +3790,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3847,8 +3847,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3937,8 +3937,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3947,8 +3947,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
||||||
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
|
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -3983,8 +3983,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -3997,8 +3997,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
||||||
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
|
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -4032,8 +4032,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -4049,8 +4049,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
|
||||||
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
|
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
|
||||||
|
|
||||||
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIRunningEvent.class);
|
MIRunningEvent.class);
|
||||||
|
|
||||||
// No error should be thrown, the call should ignore running threads
|
// No error should be thrown, the call should ignore running threads
|
||||||
runAsyncCall(new AsyncRunnable<Object>() {
|
runAsyncCall(new AsyncRunnable<Object>() {
|
||||||
|
@ -4086,8 +4086,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -4137,8 +4137,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
@ -4194,8 +4194,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
|
||||||
// Run program until both threads are stopped
|
// Run program until both threads are stopped
|
||||||
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
SyncUtil.addBreakpoint("firstBreakpoint", false);
|
||||||
|
|
||||||
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
|
||||||
fMultiRun.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
SyncUtil.resumeAll();
|
SyncUtil.resumeAll();
|
||||||
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
|
||||||
|
|
|
@ -157,8 +157,8 @@ public class ThreadStackFrameSyncTest extends BaseParametrizedTestCase {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testChangingCurrentThreadCLINotification() throws Throwable {
|
public void testChangingCurrentThreadCLINotification() throws Throwable {
|
||||||
ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRunControl.getSession(),
|
||||||
fMultiRunControl.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
// add a breakpoint in main
|
// add a breakpoint in main
|
||||||
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
|
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
|
||||||
|
@ -193,8 +193,8 @@ public class ThreadStackFrameSyncTest extends BaseParametrizedTestCase {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testChangingCurrentFrameCLINotification() throws Throwable {
|
public void testChangingCurrentFrameCLINotification() throws Throwable {
|
||||||
ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRunControl.getSession(),
|
||||||
fMultiRunControl.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
// add a breakpoint in main
|
// add a breakpoint in main
|
||||||
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
|
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
|
||||||
|
@ -229,8 +229,8 @@ public class ThreadStackFrameSyncTest extends BaseParametrizedTestCase {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testGdbSyncServiceCanSwitchGDBThread() throws Throwable {
|
public void testGdbSyncServiceCanSwitchGDBThread() throws Throwable {
|
||||||
ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRunControl.getSession(),
|
||||||
fMultiRunControl.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
// add a breakpoint in main
|
// add a breakpoint in main
|
||||||
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
|
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
|
||||||
|
@ -270,8 +270,8 @@ public class ThreadStackFrameSyncTest extends BaseParametrizedTestCase {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testGdbSyncServiceCanSwitchGDBStackFrame() throws Throwable {
|
public void testGdbSyncServiceCanSwitchGDBStackFrame() throws Throwable {
|
||||||
ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
|
ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRunControl.getSession(),
|
||||||
fMultiRunControl.getSession(), MIStoppedEvent.class);
|
MIStoppedEvent.class);
|
||||||
|
|
||||||
// add a breakpoint in main
|
// add a breakpoint in main
|
||||||
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
|
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
|
||||||
|
|
|
@ -202,8 +202,7 @@ class DisassemblyColumnSupport implements IColumnSupport {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void dispose() {
|
public void dispose() {
|
||||||
for (Iterator<IContributedRulerColumn> iter = new ArrayList<>(fColumns).iterator(); iter
|
for (Iterator<IContributedRulerColumn> iter = new ArrayList<>(fColumns).iterator(); iter.hasNext();)
|
||||||
.hasNext();)
|
|
||||||
removeColumn(getRuler(), iter.next());
|
removeColumn(getRuler(), iter.next());
|
||||||
fColumns.clear();
|
fColumns.clear();
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,8 +55,7 @@ public class BreakpointVMNode extends AbstractBreakpointVMNode
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(ILabelUpdate[] updates) {
|
public void update(ILabelUpdate[] updates) {
|
||||||
Map<IElementLabelProvider, List<ILabelUpdate>> delegatesMap = new HashMap<>(
|
Map<IElementLabelProvider, List<ILabelUpdate>> delegatesMap = new HashMap<>(1, 1);
|
||||||
1, 1);
|
|
||||||
|
|
||||||
for (final ILabelUpdate update : updates) {
|
for (final ILabelUpdate update : updates) {
|
||||||
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
|
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
|
||||||
|
@ -164,8 +163,7 @@ public class BreakpointVMNode extends AbstractBreakpointVMNode
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encodeElements(IElementMementoRequest[] updates) {
|
public void encodeElements(IElementMementoRequest[] updates) {
|
||||||
Map<IElementMementoProvider, List<IElementMementoRequest>> delegatesMap = new HashMap<>(
|
Map<IElementMementoProvider, List<IElementMementoRequest>> delegatesMap = new HashMap<>(1, 1);
|
||||||
1, 1);
|
|
||||||
|
|
||||||
for (final IElementMementoRequest update : updates) {
|
for (final IElementMementoRequest update : updates) {
|
||||||
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
|
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
|
||||||
|
@ -241,8 +239,7 @@ public class BreakpointVMNode extends AbstractBreakpointVMNode
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void compareElements(IElementCompareRequest[] updates) {
|
public void compareElements(IElementCompareRequest[] updates) {
|
||||||
Map<IElementMementoProvider, List<IElementCompareRequest>> delegatesMap = new HashMap<>(
|
Map<IElementMementoProvider, List<IElementCompareRequest>> delegatesMap = new HashMap<>(1, 1);
|
||||||
1, 1);
|
|
||||||
|
|
||||||
for (final IElementCompareRequest update : updates) {
|
for (final IElementCompareRequest update : updates) {
|
||||||
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
|
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
|
||||||
|
|
|
@ -144,8 +144,7 @@ public class BreakpointVMProvider extends AbstractVMProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<BreakpointOrganizerVMContext> vmcs = new ArrayList<>(
|
List<BreakpointOrganizerVMContext> vmcs = new ArrayList<>(bpsLists.size());
|
||||||
bpsLists.size());
|
|
||||||
for (Map.Entry<IAdaptable, List<IBreakpoint>> entry : bpsLists.entrySet()) {
|
for (Map.Entry<IAdaptable, List<IBreakpoint>> entry : bpsLists.entrySet()) {
|
||||||
List<IBreakpoint> bpsList = entry.getValue();
|
List<IBreakpoint> bpsList = entry.getValue();
|
||||||
IBreakpoint[] bpsArray = bpsList.toArray(new IBreakpoint[bpsList.size()]);
|
IBreakpoint[] bpsArray = bpsList.toArray(new IBreakpoint[bpsList.size()]);
|
||||||
|
|
|
@ -424,10 +424,8 @@ public class FormattedValueRetriever {
|
||||||
final Map<IPropertiesUpdate, String[]> availableFormatsMap,
|
final Map<IPropertiesUpdate, String[]> availableFormatsMap,
|
||||||
final Map<IPropertiesUpdate, String> elementFormatMap, final RequestMonitor rm) {
|
final Map<IPropertiesUpdate, String> elementFormatMap, final RequestMonitor rm) {
|
||||||
final List<IPropertiesUpdate> outstandingUpdates = new ArrayList<>(updates.length);
|
final List<IPropertiesUpdate> outstandingUpdates = new ArrayList<>(updates.length);
|
||||||
final Map<IPropertiesUpdate, List<String>> requestedFormatsMap = new HashMap<>(
|
final Map<IPropertiesUpdate, List<String>> requestedFormatsMap = new HashMap<>(updates.length * 4 / 3);
|
||||||
updates.length * 4 / 3);
|
final Map<IPropertiesUpdate, String> activeFormatsMap = new HashMap<>(updates.length * 4 / 3);
|
||||||
final Map<IPropertiesUpdate, String> activeFormatsMap = new HashMap<>(
|
|
||||||
updates.length * 4 / 3);
|
|
||||||
|
|
||||||
for (final IPropertiesUpdate update : updates) {
|
for (final IPropertiesUpdate update : updates) {
|
||||||
String preferredFormat = FormattedValueVMUtil.getPreferredFormat(update.getPresentationContext());
|
String preferredFormat = FormattedValueVMUtil.getPreferredFormat(update.getPresentationContext());
|
||||||
|
|
|
@ -203,8 +203,7 @@ public class BreakpointsMediator extends AbstractDsfService implements IBreakpoi
|
||||||
|
|
||||||
// We have to make a copy of the fPlatformBPs keys because uninstallBreakpoints()
|
// We have to make a copy of the fPlatformBPs keys because uninstallBreakpoints()
|
||||||
// modifies the map as it walks through it.
|
// modifies the map as it walks through it.
|
||||||
List<IBreakpointsTargetDMContext> platformBPKeysCopy = new ArrayList<>(
|
List<IBreakpointsTargetDMContext> platformBPKeysCopy = new ArrayList<>(fPlatformBPs.size());
|
||||||
fPlatformBPs.size());
|
|
||||||
platformBPKeysCopy.addAll(0, fPlatformBPs.keySet());
|
platformBPKeysCopy.addAll(0, fPlatformBPs.keySet());
|
||||||
for (IBreakpointsTargetDMContext dmc : platformBPKeysCopy) {
|
for (IBreakpointsTargetDMContext dmc : platformBPKeysCopy) {
|
||||||
stopTrackingBreakpoints(dmc, countingRm);
|
stopTrackingBreakpoints(dmc, countingRm);
|
||||||
|
@ -567,8 +566,7 @@ public class BreakpointsMediator extends AbstractDsfService implements IBreakpoi
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the list of corresponding back-end breakpoints
|
// Get the list of corresponding back-end breakpoints
|
||||||
final List<IBreakpointDMContext> oldBpContexts = new ArrayList<>(
|
final List<IBreakpointDMContext> oldBpContexts = new ArrayList<>(breakpointIDs.get(breakpoint));
|
||||||
breakpointIDs.get(breakpoint));
|
|
||||||
|
|
||||||
// Calculate the list of attributes maps that have not changed.
|
// Calculate the list of attributes maps that have not changed.
|
||||||
// Immediately add these to the list of new breakpoint contexts,
|
// Immediately add these to the list of new breakpoint contexts,
|
||||||
|
|
|
@ -319,8 +319,7 @@ public class BreakpointsMediator2 extends AbstractDsfService implements IBreakpo
|
||||||
|
|
||||||
// We have to make a copy of the fPlatformBPs keys because uninstallBreakpoints()
|
// We have to make a copy of the fPlatformBPs keys because uninstallBreakpoints()
|
||||||
// modifies the map as it walks through it.
|
// modifies the map as it walks through it.
|
||||||
List<IBreakpointsTargetDMContext> platformBPKeysCopy = new ArrayList<>(
|
List<IBreakpointsTargetDMContext> platformBPKeysCopy = new ArrayList<>(fPlatformBPs.size());
|
||||||
fPlatformBPs.size());
|
|
||||||
platformBPKeysCopy.addAll(0, fPlatformBPs.keySet());
|
platformBPKeysCopy.addAll(0, fPlatformBPs.keySet());
|
||||||
for (IBreakpointsTargetDMContext dmc : platformBPKeysCopy) {
|
for (IBreakpointsTargetDMContext dmc : platformBPKeysCopy) {
|
||||||
stopTrackingBreakpoints(dmc, countingRm);
|
stopTrackingBreakpoints(dmc, countingRm);
|
||||||
|
@ -527,8 +526,7 @@ public class BreakpointsMediator2 extends AbstractDsfService implements IBreakpo
|
||||||
targetBPsAttempted.add(new TargetBP(attrsList.get(i)));
|
targetBPsAttempted.add(new TargetBP(attrsList.get(i)));
|
||||||
}
|
}
|
||||||
|
|
||||||
final ArrayList<ITargetBreakpointInfo> targetBPsInstalled = new ArrayList<>(
|
final ArrayList<ITargetBreakpointInfo> targetBPsInstalled = new ArrayList<>(attrsList.size());
|
||||||
attrsList.size());
|
|
||||||
|
|
||||||
// Update the breakpoint status when all back-end breakpoints have been installed
|
// Update the breakpoint status when all back-end breakpoints have been installed
|
||||||
final CountingRequestMonitor installRM = new CountingRequestMonitor(getExecutor(), rm) {
|
final CountingRequestMonitor installRM = new CountingRequestMonitor(getExecutor(), rm) {
|
||||||
|
|
|
@ -287,8 +287,7 @@ public class CommandCache implements ICommandListener {
|
||||||
* them to point to the new super command.
|
* them to point to the new super command.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
for (CommandInfo waitingEntry : new ArrayList<>(
|
for (CommandInfo waitingEntry : new ArrayList<>(fPendingQWaitingForCoalescedCompletion)) {
|
||||||
fPendingQWaitingForCoalescedCompletion)) {
|
|
||||||
|
|
||||||
if (waitingEntry.getCoalescedCmd() == currentUnsentEntry) {
|
if (waitingEntry.getCoalescedCmd() == currentUnsentEntry) {
|
||||||
/*
|
/*
|
||||||
|
@ -469,8 +468,7 @@ public class CommandCache implements ICommandListener {
|
||||||
* we create a new result from the coalesced command for it.
|
* we create a new result from the coalesced command for it.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
for (CommandInfo waitingEntry : new ArrayList<>(
|
for (CommandInfo waitingEntry : new ArrayList<>(fPendingQWaitingForCoalescedCompletion)) {
|
||||||
fPendingQWaitingForCoalescedCompletion)) {
|
|
||||||
|
|
||||||
if (waitingEntry.getCoalescedCmd() == finalCachedCmd) {
|
if (waitingEntry.getCoalescedCmd() == finalCachedCmd) {
|
||||||
|
|
||||||
|
|
|
@ -485,8 +485,7 @@ public class DsfSession {
|
||||||
Dictionary<String, ?> serviceProperties = (Dictionary<String, ?>) _serviceProperties;
|
Dictionary<String, ?> serviceProperties = (Dictionary<String, ?>) _serviceProperties;
|
||||||
|
|
||||||
// Build a list of listeners;
|
// Build a list of listeners;
|
||||||
SortedMap<ListenerEntry, List<Method>> listeners = new TreeMap<>(
|
SortedMap<ListenerEntry, List<Method>> listeners = new TreeMap<>(new Comparator<ListenerEntry>() {
|
||||||
new Comparator<ListenerEntry>() {
|
|
||||||
@Override
|
@Override
|
||||||
public int compare(ListenerEntry o1, ListenerEntry o2) {
|
public int compare(ListenerEntry o1, ListenerEntry o2) {
|
||||||
if (o1.fListener == o2.fListener) {
|
if (o1.fListener == o2.fListener) {
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -46,9 +47,7 @@ import org.eclipse.core.runtime.CoreException;
|
||||||
* invalidate their caches.
|
* invalidate their caches.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public class ACPMSumDataGenerator
|
public class ACPMSumDataGenerator implements IDataGenerator, IDataGenerator.Listener {
|
||||||
implements IDataGenerator, IDataGenerator.Listener
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DSF executor used to serialize data access within this data generator.
|
* DSF executor used to serialize data access within this data generator.
|
||||||
|
@ -66,19 +65,15 @@ public class ACPMSumDataGenerator
|
||||||
*/
|
*/
|
||||||
final private List<Listener> fListeners = new LinkedList<Listener>();
|
final private List<Listener> fListeners = new LinkedList<Listener>();
|
||||||
|
|
||||||
public ACPMSumDataGenerator(DsfExecutor executor,
|
public ACPMSumDataGenerator(DsfExecutor executor, IDataGenerator[] generators) {
|
||||||
IDataGenerator[] generators)
|
|
||||||
{
|
|
||||||
fExecutor = executor;
|
fExecutor = executor;
|
||||||
|
|
||||||
// Create wrappers for data generators and add ourselves as listener
|
// Create wrappers for data generators and add ourselves as listener
|
||||||
// to their events.
|
// to their events.
|
||||||
fDataGeneratorCMs = new DataGeneratorCacheManager[generators.length];
|
fDataGeneratorCMs = new DataGeneratorCacheManager[generators.length];
|
||||||
ImmediateInDsfExecutor immediateExecutor =
|
ImmediateInDsfExecutor immediateExecutor = new ImmediateInDsfExecutor(fExecutor);
|
||||||
new ImmediateInDsfExecutor(fExecutor);
|
|
||||||
for (int i = 0; i < generators.length; i++) {
|
for (int i = 0; i < generators.length; i++) {
|
||||||
fDataGeneratorCMs[i] = new DataGeneratorCacheManager(
|
fDataGeneratorCMs[i] = new DataGeneratorCacheManager(immediateExecutor, generators[i]);
|
||||||
immediateExecutor, generators[i]);
|
|
||||||
generators[i].addListener(this);
|
generators[i].addListener(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,16 +89,12 @@ public class ACPMSumDataGenerator
|
||||||
// code in one place.
|
// code in one place.
|
||||||
new Transaction<Integer>() {
|
new Transaction<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
protected Integer process()
|
protected Integer process() throws Transaction.InvalidCacheException, CoreException {
|
||||||
throws Transaction.InvalidCacheException,
|
|
||||||
CoreException
|
|
||||||
{
|
|
||||||
return processCount(this);
|
return processCount(this);
|
||||||
}
|
}
|
||||||
}.request(rm);
|
}.request(rm);
|
||||||
}
|
}
|
||||||
},
|
}, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
||||||
PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -114,11 +105,9 @@ public class ACPMSumDataGenerator
|
||||||
* @throws CoreException See {@link Transaction#process}
|
* @throws CoreException See {@link Transaction#process}
|
||||||
*/
|
*/
|
||||||
private Integer processCount(Transaction<Integer> transaction)
|
private Integer processCount(Transaction<Integer> transaction)
|
||||||
throws Transaction.InvalidCacheException, CoreException
|
throws Transaction.InvalidCacheException, CoreException {
|
||||||
{
|
|
||||||
// Assemble all needed count caches into a collection.
|
// Assemble all needed count caches into a collection.
|
||||||
List<ICache<Integer>> countCaches =
|
List<ICache<Integer>> countCaches = new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
|
||||||
new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
|
|
||||||
for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
|
for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
|
||||||
countCaches.add(dataGeneratorCM.getCount());
|
countCaches.add(dataGeneratorCM.getCount());
|
||||||
}
|
}
|
||||||
|
@ -135,24 +124,19 @@ public class ACPMSumDataGenerator
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getValue(final int index, final DataRequestMonitor<Integer> rm)
|
public void getValue(final int index, final DataRequestMonitor<Integer> rm) {
|
||||||
{
|
|
||||||
// Add a processing delay.
|
// Add a processing delay.
|
||||||
fExecutor.schedule(new Runnable() {
|
fExecutor.schedule(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
new Transaction<Integer>() {
|
new Transaction<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
protected Integer process()
|
protected Integer process() throws Transaction.InvalidCacheException, CoreException {
|
||||||
throws Transaction.InvalidCacheException,
|
|
||||||
CoreException
|
|
||||||
{
|
|
||||||
return processValue(this, index);
|
return processValue(this, index);
|
||||||
}
|
}
|
||||||
}.request(rm);
|
}.request(rm);
|
||||||
}
|
}
|
||||||
},
|
}, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
||||||
PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -164,10 +148,8 @@ public class ACPMSumDataGenerator
|
||||||
* @throws CoreException See {@link Transaction#process}
|
* @throws CoreException See {@link Transaction#process}
|
||||||
*/
|
*/
|
||||||
private Integer processValue(Transaction<Integer> transaction, int index)
|
private Integer processValue(Transaction<Integer> transaction, int index)
|
||||||
throws Transaction.InvalidCacheException, CoreException
|
throws Transaction.InvalidCacheException, CoreException {
|
||||||
{
|
List<ICache<Integer>> valueCaches = new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
|
||||||
List<ICache<Integer>> valueCaches =
|
|
||||||
new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
|
|
||||||
for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
|
for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
|
||||||
valueCaches.add(dataGeneratorCM.getValue(index));
|
valueCaches.add(dataGeneratorCM.getValue(index));
|
||||||
}
|
}
|
||||||
|
@ -202,7 +184,8 @@ public class ACPMSumDataGenerator
|
||||||
fListeners.add(listener);
|
fListeners.add(listener);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {}
|
} catch (RejectedExecutionException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -215,7 +198,8 @@ public class ACPMSumDataGenerator
|
||||||
fListeners.remove(listener);
|
fListeners.remove(listener);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {}
|
} catch (RejectedExecutionException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -230,7 +214,8 @@ public class ACPMSumDataGenerator
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {}
|
} catch (RejectedExecutionException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -245,6 +230,7 @@ public class ACPMSumDataGenerator
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {}
|
} catch (RejectedExecutionException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -62,8 +63,7 @@ import org.eclipse.swt.widgets.Table;
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@ConfinedToDsfExecutor("fDisplayExecutor")
|
@ConfinedToDsfExecutor("fDisplayExecutor")
|
||||||
public class ACPMSumDataViewer implements ILazyContentProvider
|
public class ACPMSumDataViewer implements ILazyContentProvider {
|
||||||
{
|
|
||||||
/** View update frequency interval. */
|
/** View update frequency interval. */
|
||||||
final private static int UPDATE_INTERVAL = 10000;
|
final private static int UPDATE_INTERVAL = 10000;
|
||||||
|
|
||||||
|
@ -81,19 +81,15 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
final private DataGeneratorCacheManager fSumGeneratorCM;
|
final private DataGeneratorCacheManager fSumGeneratorCM;
|
||||||
|
|
||||||
// Fields used in request cancellation logic.
|
// Fields used in request cancellation logic.
|
||||||
private List<ValueRequestMonitor> fItemDataRequestMonitors =
|
private List<ValueRequestMonitor> fItemDataRequestMonitors = new LinkedList<ValueRequestMonitor>();
|
||||||
new LinkedList<ValueRequestMonitor>();
|
|
||||||
private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
|
private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
|
||||||
private int fCancelCallsPending = 0;
|
private int fCancelCallsPending = 0;
|
||||||
private Future<?> fRefreshFuture;
|
private Future<?> fRefreshFuture;
|
||||||
|
|
||||||
public ACPMSumDataViewer(TableViewer viewer,
|
public ACPMSumDataViewer(TableViewer viewer, ImmediateInDsfExecutor dataExecutor, IDataGenerator[] generators,
|
||||||
ImmediateInDsfExecutor dataExecutor, IDataGenerator[] generators,
|
IDataGenerator sumGenerator) {
|
||||||
IDataGenerator sumGenerator)
|
|
||||||
{
|
|
||||||
fViewer = viewer;
|
fViewer = viewer;
|
||||||
fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(
|
fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(fViewer.getTable().getDisplay());
|
||||||
fViewer.getTable().getDisplay());
|
|
||||||
fDataExecutor = dataExecutor;
|
fDataExecutor = dataExecutor;
|
||||||
|
|
||||||
// Create wrappers for data generators. Don't need to register as
|
// Create wrappers for data generators. Don't need to register as
|
||||||
|
@ -101,21 +97,17 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
// are already registered for them.
|
// are already registered for them.
|
||||||
fDataGeneratorCMs = new DataGeneratorCacheManager[generators.length];
|
fDataGeneratorCMs = new DataGeneratorCacheManager[generators.length];
|
||||||
for (int i = 0; i < generators.length; i++) {
|
for (int i = 0; i < generators.length; i++) {
|
||||||
fDataGeneratorCMs[i] =
|
fDataGeneratorCMs[i] = new DataGeneratorCacheManager(fDataExecutor, generators[i]);
|
||||||
new DataGeneratorCacheManager(fDataExecutor, generators[i]);
|
|
||||||
}
|
}
|
||||||
fSumGeneratorCM =
|
fSumGeneratorCM = new DataGeneratorCacheManager(fDataExecutor, sumGenerator);
|
||||||
new DataGeneratorCacheManager(fDataExecutor, sumGenerator);
|
|
||||||
|
|
||||||
// Schedule a task to refresh the viewer periodically.
|
// Schedule a task to refresh the viewer periodically.
|
||||||
fRefreshFuture = fDisplayExecutor.scheduleAtFixedRate(
|
fRefreshFuture = fDisplayExecutor.scheduleAtFixedRate(new Runnable() {
|
||||||
new Runnable() {
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
queryItemCount();
|
queryItemCount();
|
||||||
}
|
}
|
||||||
},
|
}, UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.MILLISECONDS);
|
||||||
UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -129,9 +121,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
@Override
|
@Override
|
||||||
protected void execute(DataRequestMonitor<Object> rm) {
|
protected void execute(DataRequestMonitor<Object> rm) {
|
||||||
fSumGeneratorCM.dispose();
|
fSumGeneratorCM.dispose();
|
||||||
for (DataGeneratorCacheManager dataGeneratorCM :
|
for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
|
||||||
fDataGeneratorCMs)
|
|
||||||
{
|
|
||||||
dataGeneratorCM.dispose();
|
dataGeneratorCM.dispose();
|
||||||
}
|
}
|
||||||
rm.setData(new Object());
|
rm.setData(new Object());
|
||||||
|
@ -141,9 +131,9 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
fDataExecutor.execute(disposeCacheManagersQuery);
|
fDataExecutor.execute(disposeCacheManagersQuery);
|
||||||
try {
|
try {
|
||||||
disposeCacheManagersQuery.get();
|
disposeCacheManagersQuery.get();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
} catch (ExecutionException e) {
|
||||||
}
|
}
|
||||||
catch (InterruptedException e) {}
|
|
||||||
catch (ExecutionException e) {}
|
|
||||||
|
|
||||||
// Cancel any outstanding data requests.
|
// Cancel any outstanding data requests.
|
||||||
for (ValueRequestMonitor rm : fItemDataRequestMonitors) {
|
for (ValueRequestMonitor rm : fItemDataRequestMonitors) {
|
||||||
|
@ -170,11 +160,12 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
// Invoke a cancel task with a delay. The delay allows multiple cancel
|
// Invoke a cancel task with a delay. The delay allows multiple cancel
|
||||||
// calls to be combined together improving performance of the viewer.
|
// calls to be combined together improving performance of the viewer.
|
||||||
fCancelCallsPending++;
|
fCancelCallsPending++;
|
||||||
fDisplayExecutor.execute(
|
fDisplayExecutor.execute(new Runnable() {
|
||||||
new Runnable() { @Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
cancelStaleRequests(topIdx, botIdx);
|
cancelStaleRequests(topIdx, botIdx);
|
||||||
}});
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -186,9 +177,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
private int getVisibleItemCount(int top) {
|
private int getVisibleItemCount(int top) {
|
||||||
Table table = fViewer.getTable();
|
Table table = fViewer.getTable();
|
||||||
int itemCount = table.getItemCount();
|
int itemCount = table.getItemCount();
|
||||||
return Math.min(
|
return Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - top);
|
||||||
(table.getBounds().height / table.getItemHeight()) + 2,
|
|
||||||
itemCount - top);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -198,15 +187,15 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
private void queryItemCount() {
|
private void queryItemCount() {
|
||||||
// Create the request monitor to collect the count. This request
|
// Create the request monitor to collect the count. This request
|
||||||
// monitor will be completed by the following transaction.
|
// monitor will be completed by the following transaction.
|
||||||
final DataRequestMonitor<Integer> rm =
|
final DataRequestMonitor<Integer> rm = new DataRequestMonitor<Integer>(fDisplayExecutor, null) {
|
||||||
new DataRequestMonitor<Integer>(fDisplayExecutor, null)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
setCountToViewer(getData());
|
setCountToViewer(getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleRejectedExecutionException() {} // Shutting down, ignore.
|
protected void handleRejectedExecutionException() {
|
||||||
|
} // Shutting down, ignore.
|
||||||
};
|
};
|
||||||
|
|
||||||
// Use a transaction, even with a single cache. This will ensure that
|
// Use a transaction, even with a single cache. This will ensure that
|
||||||
|
@ -217,9 +206,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
public void run() {
|
public void run() {
|
||||||
new Transaction<Integer>() {
|
new Transaction<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
protected Integer process()
|
protected Integer process() throws Transaction.InvalidCacheException, CoreException {
|
||||||
throws Transaction.InvalidCacheException, CoreException
|
|
||||||
{
|
|
||||||
return processCount(this);
|
return processCount(this);
|
||||||
}
|
}
|
||||||
}.request(rm);
|
}.request(rm);
|
||||||
|
@ -235,8 +222,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
* @throws CoreException See {@link Transaction#process}
|
* @throws CoreException See {@link Transaction#process}
|
||||||
*/
|
*/
|
||||||
private Integer processCount(Transaction<Integer> transaction)
|
private Integer processCount(Transaction<Integer> transaction)
|
||||||
throws Transaction.InvalidCacheException, CoreException
|
throws Transaction.InvalidCacheException, CoreException {
|
||||||
{
|
|
||||||
ICache<Integer> countCache = fSumGeneratorCM.getCount();
|
ICache<Integer> countCache = fSumGeneratorCM.getCount();
|
||||||
transaction.validate(countCache);
|
transaction.validate(countCache);
|
||||||
return countCache.getData();
|
return countCache.getData();
|
||||||
|
@ -269,6 +255,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
setValueToViewer(index, getData());
|
setValueToViewer(index, getData());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleRejectedExecutionException() {
|
protected void handleRejectedExecutionException() {
|
||||||
// Shutting down, ignore.
|
// Shutting down, ignore.
|
||||||
|
@ -287,9 +274,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
public void run() {
|
public void run() {
|
||||||
new Transaction<String>() {
|
new Transaction<String>() {
|
||||||
@Override
|
@Override
|
||||||
protected String process()
|
protected String process() throws Transaction.InvalidCacheException, CoreException {
|
||||||
throws Transaction.InvalidCacheException, CoreException
|
|
||||||
{
|
|
||||||
return processValue(this, index);
|
return processValue(this, index);
|
||||||
}
|
}
|
||||||
}.request(rm);
|
}.request(rm);
|
||||||
|
@ -319,10 +304,8 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
* @throws CoreException See {@link Transaction#process}
|
* @throws CoreException See {@link Transaction#process}
|
||||||
*/
|
*/
|
||||||
private String processValue(Transaction<String> transaction, int index)
|
private String processValue(Transaction<String> transaction, int index)
|
||||||
throws Transaction.InvalidCacheException, CoreException
|
throws Transaction.InvalidCacheException, CoreException {
|
||||||
{
|
List<ICache<Integer>> valueCaches = new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
|
||||||
List<ICache<Integer>> valueCaches =
|
|
||||||
new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
|
|
||||||
for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
|
for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
|
||||||
valueCaches.add(dataGeneratorCM.getValue(index));
|
valueCaches.add(dataGeneratorCM.getValue(index));
|
||||||
}
|
}
|
||||||
|
@ -338,7 +321,8 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
int calcSum = 0;
|
int calcSum = 0;
|
||||||
for (ICache<Integer> valueCache : valueCaches) {
|
for (ICache<Integer> valueCache : valueCaches) {
|
||||||
if (result.length() != 0) result.append(" + ");
|
if (result.length() != 0)
|
||||||
|
result.append(" + ");
|
||||||
result.append(valueCache.getData());
|
result.append(valueCache.getData());
|
||||||
calcSum += valueCache.getData();
|
calcSum += valueCache.getData();
|
||||||
}
|
}
|
||||||
|
@ -388,9 +372,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
|
|
||||||
// Go through the outstanding requests and cancel any that
|
// Go through the outstanding requests and cancel any that
|
||||||
// are not visible anymore.
|
// are not visible anymore.
|
||||||
for (Iterator<ValueRequestMonitor> itr =
|
for (Iterator<ValueRequestMonitor> itr = fItemDataRequestMonitors.iterator(); itr.hasNext();) {
|
||||||
fItemDataRequestMonitors.iterator(); itr.hasNext();)
|
|
||||||
{
|
|
||||||
ValueRequestMonitor item = itr.next();
|
ValueRequestMonitor item = itr.next();
|
||||||
if (item.fIndex < topIdx || item.fIndex > botIdx) {
|
if (item.fIndex < topIdx || item.fIndex > botIdx) {
|
||||||
// Set the item to canceled status, so that the data provider
|
// Set the item to canceled status, so that the data provider
|
||||||
|
@ -436,8 +418,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
Font font = new Font(display, "Courier", 10, SWT.NORMAL);
|
Font font = new Font(display, "Courier", 10, SWT.NORMAL);
|
||||||
|
|
||||||
// Create the table viewer.
|
// Create the table viewer.
|
||||||
TableViewer tableViewer =
|
TableViewer tableViewer = new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
|
||||||
new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
|
|
||||||
tableViewer.getControl().setLayoutData(data);
|
tableViewer.getControl().setLayoutData(data);
|
||||||
|
|
||||||
DsfExecutor executor = new DefaultDsfExecutor("Example executor");
|
DsfExecutor executor = new DefaultDsfExecutor("Example executor");
|
||||||
|
@ -447,12 +428,10 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
for (int i = 0; i < generators.length; i++) {
|
for (int i = 0; i < generators.length; i++) {
|
||||||
generators[i] = new DataGeneratorWithExecutor(executor);
|
generators[i] = new DataGeneratorWithExecutor(executor);
|
||||||
}
|
}
|
||||||
final IDataGenerator sumGenerator =
|
final IDataGenerator sumGenerator = new ACPMSumDataGenerator(executor, generators);
|
||||||
new ACPMSumDataGenerator(executor, generators);
|
|
||||||
|
|
||||||
// Create the content provider which will populate the viewer.
|
// Create the content provider which will populate the viewer.
|
||||||
ACPMSumDataViewer contentProvider = new ACPMSumDataViewer(
|
ACPMSumDataViewer contentProvider = new ACPMSumDataViewer(tableViewer, new ImmediateInDsfExecutor(executor),
|
||||||
tableViewer, new ImmediateInDsfExecutor(executor),
|
|
||||||
generators, sumGenerator);
|
generators, sumGenerator);
|
||||||
tableViewer.setContentProvider(contentProvider);
|
tableViewer.setContentProvider(contentProvider);
|
||||||
tableViewer.setInput(new Object());
|
tableViewer.setInput(new Object());
|
||||||
|
@ -470,8 +449,7 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
Query<Object> shutdownQuery = new Query<Object>() {
|
Query<Object> shutdownQuery = new Query<Object>() {
|
||||||
@Override
|
@Override
|
||||||
protected void execute(DataRequestMonitor<Object> rm) {
|
protected void execute(DataRequestMonitor<Object> rm) {
|
||||||
CountingRequestMonitor crm = new CountingRequestMonitor(
|
CountingRequestMonitor crm = new CountingRequestMonitor(ImmediateExecutor.getInstance(), rm);
|
||||||
ImmediateExecutor.getInstance(), rm);
|
|
||||||
for (int i = 0; i < generators.length; i++) {
|
for (int i = 0; i < generators.length; i++) {
|
||||||
generators[i].shutdown(crm);
|
generators[i].shutdown(crm);
|
||||||
}
|
}
|
||||||
|
@ -483,7 +461,8 @@ public class ACPMSumDataViewer implements ILazyContentProvider
|
||||||
executor.execute(shutdownQuery);
|
executor.execute(shutdownQuery);
|
||||||
try {
|
try {
|
||||||
shutdownQuery.get();
|
shutdownQuery.get();
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
|
||||||
// Shut down the display.
|
// Shut down the display.
|
||||||
font.dispose();
|
font.dispose();
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -57,9 +58,7 @@ import org.eclipse.swt.widgets.Table;
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@ConfinedToDsfExecutor("fDisplayExecutor")
|
@ConfinedToDsfExecutor("fDisplayExecutor")
|
||||||
public class AsyncDataViewer
|
public class AsyncDataViewer implements ILazyContentProvider, IDataGenerator.Listener {
|
||||||
implements ILazyContentProvider, IDataGenerator.Listener
|
|
||||||
{
|
|
||||||
// Executor to use instead of Display.asyncExec().
|
// Executor to use instead of Display.asyncExec().
|
||||||
@ThreadSafe
|
@ThreadSafe
|
||||||
final private DsfExecutor fDisplayExecutor;
|
final private DsfExecutor fDisplayExecutor;
|
||||||
|
@ -69,15 +68,13 @@ public class AsyncDataViewer
|
||||||
final private IDataGenerator fDataGenerator;
|
final private IDataGenerator fDataGenerator;
|
||||||
|
|
||||||
// Fields used in request cancellation logic.
|
// Fields used in request cancellation logic.
|
||||||
private List<ValueDataRequestMonitor> fItemDataRequestMonitors =
|
private List<ValueDataRequestMonitor> fItemDataRequestMonitors = new LinkedList<ValueDataRequestMonitor>();
|
||||||
new LinkedList<ValueDataRequestMonitor>();
|
|
||||||
private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
|
private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
|
||||||
private int fCancelCallsPending = 0;
|
private int fCancelCallsPending = 0;
|
||||||
|
|
||||||
public AsyncDataViewer(TableViewer viewer, IDataGenerator generator) {
|
public AsyncDataViewer(TableViewer viewer, IDataGenerator generator) {
|
||||||
fViewer = viewer;
|
fViewer = viewer;
|
||||||
fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(
|
fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(fViewer.getTable().getDisplay());
|
||||||
fViewer.getTable().getDisplay());
|
|
||||||
fDataGenerator = generator;
|
fDataGenerator = generator;
|
||||||
fDataGenerator.addListener(this);
|
fDataGenerator.addListener(this);
|
||||||
}
|
}
|
||||||
|
@ -105,12 +102,12 @@ public class AsyncDataViewer
|
||||||
// Invoke a cancel task with a delay. The delay allows multiple cancel
|
// Invoke a cancel task with a delay. The delay allows multiple cancel
|
||||||
// calls to be combined together improving performance of the viewer.
|
// calls to be combined together improving performance of the viewer.
|
||||||
fCancelCallsPending++;
|
fCancelCallsPending++;
|
||||||
fDisplayExecutor.schedule(
|
fDisplayExecutor.schedule(new Runnable() {
|
||||||
new Runnable() { @Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
cancelStaleRequests(topIdx, botIdx);
|
cancelStaleRequests(topIdx, botIdx);
|
||||||
}},
|
}
|
||||||
1, TimeUnit.MILLISECONDS);
|
}, 1, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -122,9 +119,7 @@ public class AsyncDataViewer
|
||||||
private int getVisibleItemCount(int top) {
|
private int getVisibleItemCount(int top) {
|
||||||
Table table = fViewer.getTable();
|
Table table = fViewer.getTable();
|
||||||
int itemCount = table.getItemCount();
|
int itemCount = table.getItemCount();
|
||||||
return Math.min(
|
return Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - top);
|
||||||
(table.getBounds().height / table.getItemHeight()) + 2,
|
|
||||||
itemCount - top);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -148,7 +143,8 @@ public class AsyncDataViewer
|
||||||
tableViewer.clear(index);
|
tableViewer.clear(index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}});
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -175,7 +171,6 @@ public class AsyncDataViewer
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves value of an element at given index. When complete the value
|
* Retrieves value of an element at given index. When complete the value
|
||||||
* is written to the viewer.
|
* is written to the viewer.
|
||||||
|
@ -220,14 +215,12 @@ public class AsyncDataViewer
|
||||||
fCancelCallsPending--;
|
fCancelCallsPending--;
|
||||||
|
|
||||||
// Must check again, in case disposed while re-dispatching.
|
// Must check again, in case disposed while re-dispatching.
|
||||||
if (fDataGenerator == null || fViewer.getTable().isDisposed()) return;
|
if (fDataGenerator == null || fViewer.getTable().isDisposed())
|
||||||
|
return;
|
||||||
|
|
||||||
// Go through the outstanding requests and cancel any that
|
// Go through the outstanding requests and cancel any that
|
||||||
// are not visible anymore.
|
// are not visible anymore.
|
||||||
for (Iterator<ValueDataRequestMonitor> itr =
|
for (Iterator<ValueDataRequestMonitor> itr = fItemDataRequestMonitors.iterator(); itr.hasNext();) {
|
||||||
fItemDataRequestMonitors.iterator();
|
|
||||||
itr.hasNext();)
|
|
||||||
{
|
|
||||||
ValueDataRequestMonitor item = itr.next();
|
ValueDataRequestMonitor item = itr.next();
|
||||||
if (item.fIndex < topIdx || item.fIndex > botIdx) {
|
if (item.fIndex < topIdx || item.fIndex > botIdx) {
|
||||||
// Set the item to canceled status, so that the data provider
|
// Set the item to canceled status, so that the data provider
|
||||||
|
@ -259,7 +252,6 @@ public class AsyncDataViewer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// Create the shell to hold the viewer.
|
// Create the shell to hold the viewer.
|
||||||
Display display = new Display();
|
Display display = new Display();
|
||||||
|
@ -270,16 +262,14 @@ public class AsyncDataViewer
|
||||||
Font font = new Font(display, "Courier", 10, SWT.NORMAL);
|
Font font = new Font(display, "Courier", 10, SWT.NORMAL);
|
||||||
|
|
||||||
// Create the table viewer.
|
// Create the table viewer.
|
||||||
TableViewer tableViewer =
|
TableViewer tableViewer = new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
|
||||||
new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
|
|
||||||
tableViewer.getControl().setLayoutData(data);
|
tableViewer.getControl().setLayoutData(data);
|
||||||
|
|
||||||
// Create the data generator.
|
// Create the data generator.
|
||||||
final IDataGenerator generator = new DataGeneratorWithExecutor();
|
final IDataGenerator generator = new DataGeneratorWithExecutor();
|
||||||
|
|
||||||
// Create the content provider which will populate the viewer.
|
// Create the content provider which will populate the viewer.
|
||||||
AsyncDataViewer contentProvider =
|
AsyncDataViewer contentProvider = new AsyncDataViewer(tableViewer, generator);
|
||||||
new AsyncDataViewer(tableViewer, generator);
|
|
||||||
tableViewer.setContentProvider(contentProvider);
|
tableViewer.setContentProvider(contentProvider);
|
||||||
tableViewer.setInput(new Object());
|
tableViewer.setInput(new Object());
|
||||||
|
|
||||||
|
@ -302,7 +292,8 @@ public class AsyncDataViewer
|
||||||
ImmediateExecutor.getInstance().execute(shutdownQuery);
|
ImmediateExecutor.getInstance().execute(shutdownQuery);
|
||||||
try {
|
try {
|
||||||
shutdownQuery.get();
|
shutdownQuery.get();
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
|
||||||
// Shut down the display.
|
// Shut down the display.
|
||||||
font.dispose();
|
font.dispose();
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -48,9 +49,7 @@ public class AsyncSumDataGenerator implements IDataGenerator {
|
||||||
*/
|
*/
|
||||||
final private IDataGenerator[] fDataGenerators;
|
final private IDataGenerator[] fDataGenerators;
|
||||||
|
|
||||||
public AsyncSumDataGenerator(DsfExecutor executor,
|
public AsyncSumDataGenerator(DsfExecutor executor, IDataGenerator[] generators) {
|
||||||
IDataGenerator[] generators)
|
|
||||||
{
|
|
||||||
fExecutor = executor;
|
fExecutor = executor;
|
||||||
fDataGenerators = generators;
|
fDataGenerators = generators;
|
||||||
}
|
}
|
||||||
|
@ -64,8 +63,7 @@ public class AsyncSumDataGenerator implements IDataGenerator {
|
||||||
public void run() {
|
public void run() {
|
||||||
doGetCount(rm);
|
doGetCount(rm);
|
||||||
}
|
}
|
||||||
},
|
}, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
||||||
PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,9 +75,7 @@ public class AsyncSumDataGenerator implements IDataGenerator {
|
||||||
final int[] counts = new int[fDataGenerators.length];
|
final int[] counts = new int[fDataGenerators.length];
|
||||||
|
|
||||||
// Counting request monitor is called once all data is retrieved.
|
// Counting request monitor is called once all data is retrieved.
|
||||||
final CountingRequestMonitor crm =
|
final CountingRequestMonitor crm = new CountingRequestMonitor(fExecutor, rm) {
|
||||||
new CountingRequestMonitor(fExecutor, rm)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
// Pick the highest count value.
|
// Pick the highest count value.
|
||||||
|
@ -93,10 +89,7 @@ public class AsyncSumDataGenerator implements IDataGenerator {
|
||||||
// Each call to data generator fills in one value in array.
|
// Each call to data generator fills in one value in array.
|
||||||
for (int i = 0; i < fDataGenerators.length; i++) {
|
for (int i = 0; i < fDataGenerators.length; i++) {
|
||||||
final int finalI = i;
|
final int finalI = i;
|
||||||
fDataGenerators[i].getCount(
|
fDataGenerators[i].getCount(new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
|
||||||
new DataRequestMonitor<Integer>(
|
|
||||||
ImmediateExecutor.getInstance(), crm)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
counts[finalI] = getData();
|
counts[finalI] = getData();
|
||||||
|
@ -108,8 +101,7 @@ public class AsyncSumDataGenerator implements IDataGenerator {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getValue(final int index, final DataRequestMonitor<Integer> rm)
|
public void getValue(final int index, final DataRequestMonitor<Integer> rm) {
|
||||||
{
|
|
||||||
// Artificially delay the retrieval of the sum data to simulate
|
// Artificially delay the retrieval of the sum data to simulate
|
||||||
// real processing time.
|
// real processing time.
|
||||||
fExecutor.schedule(new Runnable() {
|
fExecutor.schedule(new Runnable() {
|
||||||
|
@ -117,8 +109,7 @@ public class AsyncSumDataGenerator implements IDataGenerator {
|
||||||
public void run() {
|
public void run() {
|
||||||
doGetValue(index, rm);
|
doGetValue(index, rm);
|
||||||
}
|
}
|
||||||
},
|
}, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
||||||
PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -130,9 +121,7 @@ public class AsyncSumDataGenerator implements IDataGenerator {
|
||||||
final int[] values = new int[fDataGenerators.length];
|
final int[] values = new int[fDataGenerators.length];
|
||||||
|
|
||||||
// Counting request monitor is called once all data is retrieved.
|
// Counting request monitor is called once all data is retrieved.
|
||||||
final CountingRequestMonitor crm =
|
final CountingRequestMonitor crm = new CountingRequestMonitor(fExecutor, rm) {
|
||||||
new CountingRequestMonitor(fExecutor, rm)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
// Sum up values in array.
|
// Sum up values in array.
|
||||||
|
@ -148,11 +137,7 @@ public class AsyncSumDataGenerator implements IDataGenerator {
|
||||||
// Each call to data generator fills in one value in array.
|
// Each call to data generator fills in one value in array.
|
||||||
for (int i = 0; i < fDataGenerators.length; i++) {
|
for (int i = 0; i < fDataGenerators.length; i++) {
|
||||||
final int finalI = i;
|
final int finalI = i;
|
||||||
fDataGenerators[i].getValue(
|
fDataGenerators[i].getValue(index, new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
|
||||||
index,
|
|
||||||
new DataRequestMonitor<Integer>(
|
|
||||||
ImmediateExecutor.getInstance(), crm)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
values[finalI] = getData();
|
values[finalI] = getData();
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -65,8 +66,7 @@ import org.eclipse.swt.widgets.Table;
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@ConfinedToDsfExecutor("fDisplayExecutor")
|
@ConfinedToDsfExecutor("fDisplayExecutor")
|
||||||
public class AsyncSumDataViewer implements ILazyContentProvider
|
public class AsyncSumDataViewer implements ILazyContentProvider {
|
||||||
{
|
|
||||||
/** View update frequency interval. */
|
/** View update frequency interval. */
|
||||||
final private static int UPDATE_INTERVAL = 10000;
|
final private static int UPDATE_INTERVAL = 10000;
|
||||||
|
|
||||||
|
@ -80,30 +80,24 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
final private IDataGenerator fSumGenerator;
|
final private IDataGenerator fSumGenerator;
|
||||||
|
|
||||||
// Fields used in request cancellation logic.
|
// Fields used in request cancellation logic.
|
||||||
private List<ValueCountingRequestMonitor> fItemDataRequestMonitors =
|
private List<ValueCountingRequestMonitor> fItemDataRequestMonitors = new LinkedList<ValueCountingRequestMonitor>();
|
||||||
new LinkedList<ValueCountingRequestMonitor>();
|
|
||||||
private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
|
private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
|
||||||
private int fCancelCallsPending = 0;
|
private int fCancelCallsPending = 0;
|
||||||
private Future<?> fRefreshFuture;
|
private Future<?> fRefreshFuture;
|
||||||
|
|
||||||
public AsyncSumDataViewer(TableViewer viewer,
|
public AsyncSumDataViewer(TableViewer viewer, IDataGenerator[] generators, IDataGenerator sumGenerator) {
|
||||||
IDataGenerator[] generators, IDataGenerator sumGenerator)
|
|
||||||
{
|
|
||||||
fViewer = viewer;
|
fViewer = viewer;
|
||||||
fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(
|
fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(fViewer.getTable().getDisplay());
|
||||||
fViewer.getTable().getDisplay());
|
|
||||||
fDataGenerators = generators;
|
fDataGenerators = generators;
|
||||||
fSumGenerator = sumGenerator;
|
fSumGenerator = sumGenerator;
|
||||||
|
|
||||||
// Schedule a task to refresh the viewer periodically.
|
// Schedule a task to refresh the viewer periodically.
|
||||||
fRefreshFuture = fDisplayExecutor.scheduleAtFixedRate(
|
fRefreshFuture = fDisplayExecutor.scheduleAtFixedRate(new Runnable() {
|
||||||
new Runnable() {
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
queryItemCount();
|
queryItemCount();
|
||||||
}
|
}
|
||||||
},
|
}, UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.MILLISECONDS);
|
||||||
UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -136,11 +130,12 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
// Invoke a cancel task with a delay. The delay allows multiple cancel
|
// Invoke a cancel task with a delay. The delay allows multiple cancel
|
||||||
// calls to be combined together improving performance of the viewer.
|
// calls to be combined together improving performance of the viewer.
|
||||||
fCancelCallsPending++;
|
fCancelCallsPending++;
|
||||||
fDisplayExecutor.execute(
|
fDisplayExecutor.execute(new Runnable() {
|
||||||
new Runnable() { @Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
cancelStaleRequests(topIdx, botIdx);
|
cancelStaleRequests(topIdx, botIdx);
|
||||||
}});
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -152,9 +147,7 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
private int getVisibleItemCount(int top) {
|
private int getVisibleItemCount(int top) {
|
||||||
Table table = fViewer.getTable();
|
Table table = fViewer.getTable();
|
||||||
int itemCount = table.getItemCount();
|
int itemCount = table.getItemCount();
|
||||||
return Math.min(
|
return Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - top);
|
||||||
(table.getBounds().height / table.getItemHeight()) + 2,
|
|
||||||
itemCount - top);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -165,12 +158,12 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
// generator is responsible for calculating the count based on
|
// generator is responsible for calculating the count based on
|
||||||
// individual data providers' counts.
|
// individual data providers' counts.
|
||||||
fIndexesToCancel.clear();
|
fIndexesToCancel.clear();
|
||||||
fSumGenerator.getCount(
|
fSumGenerator.getCount(new DataRequestMonitor<Integer>(fDisplayExecutor, null) {
|
||||||
new DataRequestMonitor<Integer>(fDisplayExecutor, null) {
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
setCountToViewer(getData());
|
setCountToViewer(getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleRejectedExecutionException() {
|
protected void handleRejectedExecutionException() {
|
||||||
// Shutting down, ignore.
|
// Shutting down, ignore.
|
||||||
|
@ -203,9 +196,7 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
|
|
||||||
// Counting request monitor is invoked when the required number of
|
// Counting request monitor is invoked when the required number of
|
||||||
// value requests is completed.
|
// value requests is completed.
|
||||||
final ValueCountingRequestMonitor crm =
|
final ValueCountingRequestMonitor crm = new ValueCountingRequestMonitor(index) {
|
||||||
new ValueCountingRequestMonitor(index)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleCompleted() {
|
protected void handleCompleted() {
|
||||||
fItemDataRequestMonitors.remove(this);
|
fItemDataRequestMonitors.remove(this);
|
||||||
|
@ -216,7 +207,8 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
int calcSum = 0;
|
int calcSum = 0;
|
||||||
for (int value : values) {
|
for (int value : values) {
|
||||||
if (result.length() != 0) result.append(" + ");
|
if (result.length() != 0)
|
||||||
|
result.append(" + ");
|
||||||
result.append(value);
|
result.append(value);
|
||||||
calcSum += value;
|
calcSum += value;
|
||||||
}
|
}
|
||||||
|
@ -233,14 +225,11 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
// Request data from each data generator.
|
// Request data from each data generator.
|
||||||
for (int i = 0; i < fDataGenerators.length; i++) {
|
for (int i = 0; i < fDataGenerators.length; i++) {
|
||||||
final int finalI = i;
|
final int finalI = i;
|
||||||
fDataGenerators[i].getValue(
|
fDataGenerators[i].getValue(index,
|
||||||
index,
|
|
||||||
// Use the display executor to construct the request monitor,
|
// Use the display executor to construct the request monitor,
|
||||||
// this will cause the handleCompleted() method to be
|
// this will cause the handleCompleted() method to be
|
||||||
// automatically called on the display thread.
|
// automatically called on the display thread.
|
||||||
new DataRequestMonitor<Integer>(
|
new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
|
||||||
ImmediateExecutor.getInstance(), crm)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
values[finalI] = getData();
|
values[finalI] = getData();
|
||||||
|
@ -250,11 +239,7 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
// Separately request data from the sum data generator.
|
// Separately request data from the sum data generator.
|
||||||
fSumGenerator.getValue(
|
fSumGenerator.getValue(index, new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
|
||||||
index,
|
|
||||||
new DataRequestMonitor<Integer>(
|
|
||||||
ImmediateExecutor.getInstance(), crm)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
sum[0] = getData();
|
sum[0] = getData();
|
||||||
|
@ -309,13 +294,12 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
fCancelCallsPending--;
|
fCancelCallsPending--;
|
||||||
|
|
||||||
// Must check again, in case disposed while re-dispatching.
|
// Must check again, in case disposed while re-dispatching.
|
||||||
if (fDataGenerators == null || fViewer.getTable().isDisposed()) return;
|
if (fDataGenerators == null || fViewer.getTable().isDisposed())
|
||||||
|
return;
|
||||||
|
|
||||||
// Go through the outstanding requests and cancel any that
|
// Go through the outstanding requests and cancel any that
|
||||||
// are not visible anymore.
|
// are not visible anymore.
|
||||||
for (Iterator<ValueCountingRequestMonitor> itr =
|
for (Iterator<ValueCountingRequestMonitor> itr = fItemDataRequestMonitors.iterator(); itr.hasNext();) {
|
||||||
fItemDataRequestMonitors.iterator(); itr.hasNext();)
|
|
||||||
{
|
|
||||||
ValueCountingRequestMonitor item = itr.next();
|
ValueCountingRequestMonitor item = itr.next();
|
||||||
if (item.fIndex < topIdx || item.fIndex > botIdx) {
|
if (item.fIndex < topIdx || item.fIndex > botIdx) {
|
||||||
// Set the item to canceled status, so that the data provider
|
// Set the item to canceled status, so that the data provider
|
||||||
|
@ -361,8 +345,7 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
Font font = new Font(display, "Courier", 10, SWT.NORMAL);
|
Font font = new Font(display, "Courier", 10, SWT.NORMAL);
|
||||||
|
|
||||||
// Create the table viewer.
|
// Create the table viewer.
|
||||||
TableViewer tableViewer =
|
TableViewer tableViewer = new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
|
||||||
new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
|
|
||||||
tableViewer.getControl().setLayoutData(data);
|
tableViewer.getControl().setLayoutData(data);
|
||||||
|
|
||||||
// Single executor (and single thread) is used by all data generators,
|
// Single executor (and single thread) is used by all data generators,
|
||||||
|
@ -374,12 +357,10 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
for (int i = 0; i < generators.length; i++) {
|
for (int i = 0; i < generators.length; i++) {
|
||||||
generators[i] = new DataGeneratorWithExecutor(executor);
|
generators[i] = new DataGeneratorWithExecutor(executor);
|
||||||
}
|
}
|
||||||
final IDataGenerator sumGenerator =
|
final IDataGenerator sumGenerator = new AsyncSumDataGenerator(executor, generators);
|
||||||
new AsyncSumDataGenerator(executor, generators);
|
|
||||||
|
|
||||||
// Create the content provider which will populate the viewer.
|
// Create the content provider which will populate the viewer.
|
||||||
AsyncSumDataViewer contentProvider =
|
AsyncSumDataViewer contentProvider = new AsyncSumDataViewer(tableViewer, generators, sumGenerator);
|
||||||
new AsyncSumDataViewer(tableViewer, generators, sumGenerator);
|
|
||||||
tableViewer.setContentProvider(contentProvider);
|
tableViewer.setContentProvider(contentProvider);
|
||||||
tableViewer.setInput(new Object());
|
tableViewer.setInput(new Object());
|
||||||
|
|
||||||
|
@ -396,8 +377,7 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
Query<Object> shutdownQuery = new Query<Object>() {
|
Query<Object> shutdownQuery = new Query<Object>() {
|
||||||
@Override
|
@Override
|
||||||
protected void execute(DataRequestMonitor<Object> rm) {
|
protected void execute(DataRequestMonitor<Object> rm) {
|
||||||
CountingRequestMonitor crm = new CountingRequestMonitor(
|
CountingRequestMonitor crm = new CountingRequestMonitor(ImmediateExecutor.getInstance(), rm);
|
||||||
ImmediateExecutor.getInstance(), rm);
|
|
||||||
for (int i = 0; i < generators.length; i++) {
|
for (int i = 0; i < generators.length; i++) {
|
||||||
generators[i].shutdown(crm);
|
generators[i].shutdown(crm);
|
||||||
}
|
}
|
||||||
|
@ -409,7 +389,8 @@ public class AsyncSumDataViewer implements ILazyContentProvider
|
||||||
executor.execute(shutdownQuery);
|
executor.execute(shutdownQuery);
|
||||||
try {
|
try {
|
||||||
shutdownQuery.get();
|
shutdownQuery.get();
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
|
||||||
// Shut down the display.
|
// Shut down the display.
|
||||||
font.dispose();
|
font.dispose();
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -108,6 +109,7 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
//#endif
|
//#endif
|
||||||
class ItemRequest extends Request {
|
class ItemRequest extends Request {
|
||||||
final int fIndex;
|
final int fIndex;
|
||||||
|
|
||||||
ItemRequest(int index, DataRequestMonitor<Integer> rm) {
|
ItemRequest(int index, DataRequestMonitor<Integer> rm) {
|
||||||
super(rm);
|
super(rm);
|
||||||
fIndex = index;
|
fIndex = index;
|
||||||
|
@ -171,13 +173,13 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
//#else
|
//#else
|
||||||
//# @ConfinedToDsfExecutor("fExecutor")
|
//# @ConfinedToDsfExecutor("fExecutor")
|
||||||
//#endif
|
//#endif
|
||||||
private Map<Integer, Integer> fChangedValues =
|
private Map<Integer, Integer> fChangedValues = new HashMap<Integer, Integer>();
|
||||||
new HashMap<Integer, Integer>();
|
|
||||||
|
|
||||||
public DataGeneratorWithExecutor() {
|
public DataGeneratorWithExecutor() {
|
||||||
// Create the executor
|
// Create the executor
|
||||||
this(new DefaultDsfExecutor("Supplier Executor"));
|
this(new DefaultDsfExecutor("Supplier Executor"));
|
||||||
}
|
}
|
||||||
|
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
// TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
|
// TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
|
||||||
// indicating allowed thread access to this class/method/member
|
// indicating allowed thread access to this class/method/member
|
||||||
|
@ -187,15 +189,12 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
fExecutor = executor;
|
fExecutor = executor;
|
||||||
final Random rand = new Random();
|
final Random rand = new Random();
|
||||||
// Schedule a runnable to make the random changes.
|
// Schedule a runnable to make the random changes.
|
||||||
fExecutor.scheduleAtFixedRate(
|
fExecutor.scheduleAtFixedRate(new DsfRunnable() {
|
||||||
new DsfRunnable() {
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
randomChanges();
|
randomChanges();
|
||||||
}
|
}
|
||||||
},
|
}, rand.nextInt(RANDOM_CHANGE_INTERVAL), RANDOM_CHANGE_INTERVAL, //Add a 10% variance to the interval.
|
||||||
rand.nextInt(RANDOM_CHANGE_INTERVAL),
|
|
||||||
RANDOM_CHANGE_INTERVAL, //Add a 10% variance to the interval.
|
|
||||||
TimeUnit.MILLISECONDS);
|
TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,9 +210,8 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
public void run() {
|
public void run() {
|
||||||
// Empty the queue of requests and fail them.
|
// Empty the queue of requests and fail them.
|
||||||
for (Request request : fQueue) {
|
for (Request request : fQueue) {
|
||||||
request.fRequestMonitor.setStatus(new Status(
|
request.fRequestMonitor.setStatus(
|
||||||
IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
|
new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
|
||||||
"Supplier shut down"));
|
|
||||||
request.fRequestMonitor.done();
|
request.fRequestMonitor.done();
|
||||||
}
|
}
|
||||||
fQueue.clear();
|
fQueue.clear();
|
||||||
|
@ -224,8 +222,7 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {
|
} catch (RejectedExecutionException e) {
|
||||||
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
|
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
|
||||||
"Supplier shut down"));
|
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -245,9 +242,7 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {
|
} catch (RejectedExecutionException e) {
|
||||||
rm.setStatus(new Status(
|
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
|
||||||
IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
|
|
||||||
"Supplier shut down"));
|
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -267,8 +262,7 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {
|
} catch (RejectedExecutionException e) {
|
||||||
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
|
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
|
||||||
"Supplier shut down"));
|
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -286,7 +280,8 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
fListeners.add(listener);
|
fListeners.add(listener);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {}
|
} catch (RejectedExecutionException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
|
@ -302,7 +297,8 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
fListeners.remove(listener);
|
fListeners.remove(listener);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RejectedExecutionException e) {}
|
} catch (RejectedExecutionException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Main processing function of this generator.
|
// Main processing function of this generator.
|
||||||
|
@ -313,14 +309,12 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
//# @ConfinedToDsfExecutor("fExecutor")
|
//# @ConfinedToDsfExecutor("fExecutor")
|
||||||
//#endif
|
//#endif
|
||||||
private void serviceQueue() {
|
private void serviceQueue() {
|
||||||
fExecutor.schedule(
|
fExecutor.schedule(new DsfRunnable() {
|
||||||
new DsfRunnable() {
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
doServiceQueue();
|
doServiceQueue();
|
||||||
}
|
}
|
||||||
},
|
}, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
||||||
PROCESSING_DELAY, TimeUnit.MILLISECONDS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
|
@ -369,8 +363,7 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
//#endif
|
//#endif
|
||||||
private void processCountRequest(CountRequest request) {
|
private void processCountRequest(CountRequest request) {
|
||||||
@SuppressWarnings("unchecked") // Suppress warning about lost type info.
|
@SuppressWarnings("unchecked") // Suppress warning about lost type info.
|
||||||
DataRequestMonitor<Integer> rm =
|
DataRequestMonitor<Integer> rm = (DataRequestMonitor<Integer>) request.fRequestMonitor;
|
||||||
(DataRequestMonitor<Integer>)request.fRequestMonitor;
|
|
||||||
|
|
||||||
rm.setData(fCount);
|
rm.setData(fCount);
|
||||||
rm.done();
|
rm.done();
|
||||||
|
@ -384,8 +377,7 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
//#endif
|
//#endif
|
||||||
private void processItemRequest(ItemRequest request) {
|
private void processItemRequest(ItemRequest request) {
|
||||||
@SuppressWarnings("unchecked") // Suppress warning about lost type info.
|
@SuppressWarnings("unchecked") // Suppress warning about lost type info.
|
||||||
DataRequestMonitor<Integer> rm =
|
DataRequestMonitor<Integer> rm = (DataRequestMonitor<Integer>) request.fRequestMonitor;
|
||||||
(DataRequestMonitor<Integer>)request.fRequestMonitor;
|
|
||||||
|
|
||||||
if (fChangedValues.containsKey(request.fIndex)) {
|
if (fChangedValues.containsKey(request.fIndex)) {
|
||||||
rm.setData(fChangedValues.get(request.fIndex));
|
rm.setData(fChangedValues.get(request.fIndex));
|
||||||
|
@ -465,4 +457,3 @@ public class DataGeneratorWithExecutor implements IDataGenerator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -44,9 +45,7 @@ import org.eclipse.cdt.examples.dsf.DsfExamplesPlugin;
|
||||||
* synchronization.
|
* synchronization.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public class DataGeneratorWithThread extends Thread
|
public class DataGeneratorWithThread extends Thread implements IDataGenerator {
|
||||||
implements IDataGenerator
|
|
||||||
{
|
|
||||||
|
|
||||||
// Request objects are used to serialize the interface calls into objects
|
// Request objects are used to serialize the interface calls into objects
|
||||||
// which can then be pushed into a queue.
|
// which can then be pushed into a queue.
|
||||||
|
@ -66,6 +65,7 @@ public class DataGeneratorWithThread extends Thread
|
||||||
|
|
||||||
class ItemRequest extends Request {
|
class ItemRequest extends Request {
|
||||||
final int fIndex;
|
final int fIndex;
|
||||||
|
|
||||||
ItemRequest(int index, DataRequestMonitor<Integer> rm) {
|
ItemRequest(int index, DataRequestMonitor<Integer> rm) {
|
||||||
super(rm);
|
super(rm);
|
||||||
fIndex = index;
|
fIndex = index;
|
||||||
|
@ -81,8 +81,7 @@ public class DataGeneratorWithThread extends Thread
|
||||||
// Main request queue of the data generator. The getValue(), getCount(),
|
// Main request queue of the data generator. The getValue(), getCount(),
|
||||||
// and shutdown() methods write into the queue, while the run() method
|
// and shutdown() methods write into the queue, while the run() method
|
||||||
// reads from it.
|
// reads from it.
|
||||||
private final BlockingQueue<Request> fQueue =
|
private final BlockingQueue<Request> fQueue = new LinkedBlockingQueue<Request>();
|
||||||
new LinkedBlockingQueue<Request>();
|
|
||||||
|
|
||||||
// ListenerList class provides thread safety.
|
// ListenerList class provides thread safety.
|
||||||
private ListenerList<Listener> fListeners = new ListenerList<>();
|
private ListenerList<Listener> fListeners = new ListenerList<>();
|
||||||
|
@ -94,8 +93,7 @@ public class DataGeneratorWithThread extends Thread
|
||||||
private int fCountResetTrigger = 0;
|
private int fCountResetTrigger = 0;
|
||||||
|
|
||||||
// Elements which were modified since the last reset.
|
// Elements which were modified since the last reset.
|
||||||
private Map<Integer, Integer> fChangedValues =
|
private Map<Integer, Integer> fChangedValues = Collections.synchronizedMap(new HashMap<Integer, Integer>());
|
||||||
Collections.synchronizedMap(new HashMap<Integer, Integer>());
|
|
||||||
|
|
||||||
// Used to determine when to make changes in data.
|
// Used to determine when to make changes in data.
|
||||||
private long fLastChangeTime = System.currentTimeMillis();
|
private long fLastChangeTime = System.currentTimeMillis();
|
||||||
|
@ -116,8 +114,7 @@ public class DataGeneratorWithThread extends Thread
|
||||||
fQueue.add(new ShutdownRequest(rm));
|
fQueue.add(new ShutdownRequest(rm));
|
||||||
} else {
|
} else {
|
||||||
//
|
//
|
||||||
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
|
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
|
||||||
"Supplier shut down"));
|
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -127,8 +124,7 @@ public class DataGeneratorWithThread extends Thread
|
||||||
if (!fShutdown.get()) {
|
if (!fShutdown.get()) {
|
||||||
fQueue.add(new CountRequest(rm));
|
fQueue.add(new CountRequest(rm));
|
||||||
} else {
|
} else {
|
||||||
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
|
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
|
||||||
"Supplier shut down"));
|
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -138,8 +134,7 @@ public class DataGeneratorWithThread extends Thread
|
||||||
if (!fShutdown.get()) {
|
if (!fShutdown.get()) {
|
||||||
fQueue.add(new ItemRequest(index, rm));
|
fQueue.add(new ItemRequest(index, rm));
|
||||||
} else {
|
} else {
|
||||||
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
|
rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
|
||||||
"Supplier shut down"));
|
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -183,14 +178,13 @@ public class DataGeneratorWithThread extends Thread
|
||||||
// Simulate data changes.
|
// Simulate data changes.
|
||||||
randomChanges();
|
randomChanges();
|
||||||
}
|
}
|
||||||
|
} catch (InterruptedException x) {
|
||||||
}
|
}
|
||||||
catch (InterruptedException x) {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processCountRequest(CountRequest request) {
|
private void processCountRequest(CountRequest request) {
|
||||||
@SuppressWarnings("unchecked") // Suppress warning about lost type info.
|
@SuppressWarnings("unchecked") // Suppress warning about lost type info.
|
||||||
DataRequestMonitor<Integer> rm =
|
DataRequestMonitor<Integer> rm = (DataRequestMonitor<Integer>) request.fRequestMonitor;
|
||||||
(DataRequestMonitor<Integer>)request.fRequestMonitor;
|
|
||||||
|
|
||||||
rm.setData(fCount);
|
rm.setData(fCount);
|
||||||
rm.done();
|
rm.done();
|
||||||
|
@ -198,8 +192,7 @@ public class DataGeneratorWithThread extends Thread
|
||||||
|
|
||||||
private void processItemRequest(ItemRequest request) {
|
private void processItemRequest(ItemRequest request) {
|
||||||
@SuppressWarnings("unchecked") // Suppress warning about lost type info.
|
@SuppressWarnings("unchecked") // Suppress warning about lost type info.
|
||||||
DataRequestMonitor<Integer> rm =
|
DataRequestMonitor<Integer> rm = (DataRequestMonitor<Integer>) request.fRequestMonitor;
|
||||||
(DataRequestMonitor<Integer>)request.fRequestMonitor;
|
|
||||||
|
|
||||||
if (fChangedValues.containsKey(request.fIndex)) {
|
if (fChangedValues.containsKey(request.fIndex)) {
|
||||||
rm.setData(fChangedValues.get(request.fIndex));
|
rm.setData(fChangedValues.get(request.fIndex));
|
||||||
|
@ -209,12 +202,9 @@ public class DataGeneratorWithThread extends Thread
|
||||||
rm.done();
|
rm.done();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void randomChanges() {
|
private void randomChanges() {
|
||||||
// Check if enough time is elapsed.
|
// Check if enough time is elapsed.
|
||||||
if (System.currentTimeMillis() >
|
if (System.currentTimeMillis() > fLastChangeTime + RANDOM_CHANGE_INTERVAL) {
|
||||||
fLastChangeTime + RANDOM_CHANGE_INTERVAL)
|
|
||||||
{
|
|
||||||
fLastChangeTime = System.currentTimeMillis();
|
fLastChangeTime = System.currentTimeMillis();
|
||||||
|
|
||||||
// Once every number of changes, reset the count, the rest of the
|
// Once every number of changes, reset the count, the rest of the
|
||||||
|
@ -260,5 +250,3 @@ public class DataGeneratorWithThread extends Thread
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -51,16 +52,17 @@ public interface IDataGenerator {
|
||||||
final static int RANDOM_COUNT_CHANGE_INTERVALS = 5;
|
final static int RANDOM_COUNT_CHANGE_INTERVALS = 5;
|
||||||
final static int RANDOM_CHANGE_SET_PERCENTAGE = 10;
|
final static int RANDOM_CHANGE_SET_PERCENTAGE = 10;
|
||||||
|
|
||||||
|
|
||||||
// Listener interface that the view needs to implement to react
|
// Listener interface that the view needs to implement to react
|
||||||
// to the changes in data.
|
// to the changes in data.
|
||||||
public interface Listener {
|
public interface Listener {
|
||||||
void countChanged();
|
void countChanged();
|
||||||
|
|
||||||
void valuesChanged(Set<Integer> indexes);
|
void valuesChanged(Set<Integer> indexes);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data access methods.
|
// Data access methods.
|
||||||
void getCount(DataRequestMonitor<Integer> rm);
|
void getCount(DataRequestMonitor<Integer> rm);
|
||||||
|
|
||||||
void getValue(int index, DataRequestMonitor<Integer> rm);
|
void getValue(int index, DataRequestMonitor<Integer> rm);
|
||||||
|
|
||||||
// Method used to shutdown the data generator including any threads that
|
// Method used to shutdown the data generator including any threads that
|
||||||
|
@ -69,5 +71,6 @@ public interface IDataGenerator {
|
||||||
|
|
||||||
// Methods for registering change listeners.
|
// Methods for registering change listeners.
|
||||||
void addListener(Listener listener);
|
void addListener(Listener listener);
|
||||||
|
|
||||||
void removeListener(Listener listener);
|
void removeListener(Listener listener);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.dataviewer;
|
package org.eclipse.cdt.examples.dsf.dataviewer;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -46,9 +47,7 @@ import org.eclipse.swt.widgets.Shell;
|
||||||
* {@link Query} object.
|
* {@link Query} object.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public class SyncDataViewer
|
public class SyncDataViewer implements IStructuredContentProvider, IDataGenerator.Listener {
|
||||||
implements IStructuredContentProvider, IDataGenerator.Listener
|
|
||||||
{
|
|
||||||
// The viewer and generator that this content provider using.
|
// The viewer and generator that this content provider using.
|
||||||
final private TableViewer fViewer;
|
final private TableViewer fViewer;
|
||||||
final private IDataGenerator fDataGenerator;
|
final private IDataGenerator fDataGenerator;
|
||||||
|
@ -64,7 +63,6 @@ public class SyncDataViewer
|
||||||
// Not used
|
// Not used
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object[] getElements(Object inputElement) {
|
public Object[] getElements(Object inputElement) {
|
||||||
|
|
||||||
|
@ -97,9 +95,7 @@ public class SyncDataViewer
|
||||||
@Override
|
@Override
|
||||||
protected void execute(final DataRequestMonitor<List<Integer>> rm) {
|
protected void execute(final DataRequestMonitor<List<Integer>> rm) {
|
||||||
final Integer[] retVal = new Integer[finalCount];
|
final Integer[] retVal = new Integer[finalCount];
|
||||||
final CountingRequestMonitor crm = new CountingRequestMonitor(
|
final CountingRequestMonitor crm = new CountingRequestMonitor(ImmediateExecutor.getInstance(), rm) {
|
||||||
ImmediateExecutor.getInstance(), rm)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
rm.setData(Arrays.asList(retVal));
|
rm.setData(Arrays.asList(retVal));
|
||||||
|
@ -108,11 +104,7 @@ public class SyncDataViewer
|
||||||
};
|
};
|
||||||
for (int i = 0; i < finalCount; i++) {
|
for (int i = 0; i < finalCount; i++) {
|
||||||
final int finalI = i;
|
final int finalI = i;
|
||||||
fDataGenerator.getValue(
|
fDataGenerator.getValue(i, new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
|
||||||
i,
|
|
||||||
new DataRequestMonitor<Integer>(
|
|
||||||
ImmediateExecutor.getInstance(), crm)
|
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleSuccess() {
|
protected void handleSuccess() {
|
||||||
retVal[finalI] = getData();
|
retVal[finalI] = getData();
|
||||||
|
@ -194,8 +186,7 @@ public class SyncDataViewer
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
// Create the content provider which will populate the viewer.
|
// Create the content provider which will populate the viewer.
|
||||||
SyncDataViewer contentProvider =
|
SyncDataViewer contentProvider = new SyncDataViewer(tableViewer, generator);
|
||||||
new SyncDataViewer(tableViewer, generator);
|
|
||||||
tableViewer.setContentProvider(contentProvider);
|
tableViewer.setContentProvider(contentProvider);
|
||||||
tableViewer.setInput(new Object());
|
tableViewer.setInput(new Object());
|
||||||
|
|
||||||
|
@ -218,7 +209,8 @@ public class SyncDataViewer
|
||||||
ImmediateExecutor.getInstance().execute(shutdownQuery);
|
ImmediateExecutor.getInstance().execute(shutdownQuery);
|
||||||
try {
|
try {
|
||||||
shutdownQuery.get();
|
shutdownQuery.get();
|
||||||
} catch (Exception e) {}
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
|
||||||
// Shut down the display.
|
// Shut down the display.
|
||||||
font.dispose();
|
font.dispose();
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.requestmonitor;
|
package org.eclipse.cdt.examples.dsf.requestmonitor;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
|
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -30,8 +31,7 @@ public class Async2Plus2 {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Executor executor = ImmediateExecutor.getInstance();
|
Executor executor = ImmediateExecutor.getInstance();
|
||||||
DataRequestMonitor<Integer> rm =
|
DataRequestMonitor<Integer> rm = new DataRequestMonitor<Integer>(executor, null) {
|
||||||
new DataRequestMonitor<Integer>(executor, null) {
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleCompleted() {
|
protected void handleCompleted() {
|
||||||
System.out.println("2 + 2 = " + getData());
|
System.out.println("2 + 2 = " + getData());
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.requestmonitor;
|
package org.eclipse.cdt.examples.dsf.requestmonitor;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
|
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
package org.eclipse.cdt.examples.dsf.requestmonitor;
|
package org.eclipse.cdt.examples.dsf.requestmonitor;
|
||||||
//#else
|
//#else
|
||||||
|
|
||||||
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
|
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
@ -39,9 +40,7 @@ public class AsyncQuicksort {
|
||||||
final int[] array = { 5, 7, 8, 3, 2, 1, 9, 5, 4 };
|
final int[] array = { 5, 7, 8, 3, 2, 1, 9, 5, 4 };
|
||||||
|
|
||||||
System.out.println("To sort: " + Arrays.toString(array));
|
System.out.println("To sort: " + Arrays.toString(array));
|
||||||
asyncQuicksort(
|
asyncQuicksort(array, 0, array.length - 1, new RequestMonitor(fgExecutor, null) {
|
||||||
array, 0, array.length - 1,
|
|
||||||
new RequestMonitor(fgExecutor, null) {
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleCompleted() {
|
protected void handleCompleted() {
|
||||||
System.out.println("Sorted: " + Arrays.toString(array));
|
System.out.println("Sorted: " + Arrays.toString(array));
|
||||||
|
@ -49,9 +48,7 @@ public class AsyncQuicksort {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static void asyncQuicksort(final int[] array, final int left,
|
static void asyncQuicksort(final int[] array, final int left, final int right, final RequestMonitor rm) {
|
||||||
final int right, final RequestMonitor rm)
|
|
||||||
{
|
|
||||||
if (right > left) {
|
if (right > left) {
|
||||||
int pivot = left;
|
int pivot = left;
|
||||||
//#ifdef exercises
|
//#ifdef exercises
|
||||||
|
|
|
@ -462,8 +462,7 @@ abstract public class FormattedValueTests extends TestCase
|
||||||
ArrayList<ElementFormatSetting> elementFormats1 = new ArrayList<>(map1.values());
|
ArrayList<ElementFormatSetting> elementFormats1 = new ArrayList<>(map1.values());
|
||||||
HashMap<String, ElementFormatSetting> expMap1 = new HashMap<>();
|
HashMap<String, ElementFormatSetting> expMap1 = new HashMap<>();
|
||||||
makeElementFormatSetting(fViewer, TreePath.EMPTY, format1, depth, 0, expMap1);
|
makeElementFormatSetting(fViewer, TreePath.EMPTY, format1, depth, 0, expMap1);
|
||||||
ArrayList<ElementFormatSetting> expectElementFormats1 = new ArrayList<>(
|
ArrayList<ElementFormatSetting> expectElementFormats1 = new ArrayList<>(expMap1.values());
|
||||||
expMap1.values());
|
|
||||||
vmListenerLevel = depth;
|
vmListenerLevel = depth;
|
||||||
setFormatAndValidate(preferenceFormat, elementFormats1, expectElementFormats1, true, false, false);
|
setFormatAndValidate(preferenceFormat, elementFormats1, expectElementFormats1, true, false, false);
|
||||||
|
|
||||||
|
@ -474,8 +473,7 @@ abstract public class FormattedValueTests extends TestCase
|
||||||
ArrayList<ElementFormatSetting> elementFormats2 = new ArrayList<>(map2.values());
|
ArrayList<ElementFormatSetting> elementFormats2 = new ArrayList<>(map2.values());
|
||||||
HashMap<String, ElementFormatSetting> expMap2 = new HashMap<>();
|
HashMap<String, ElementFormatSetting> expMap2 = new HashMap<>();
|
||||||
makeElementFormatSetting(fViewer, TreePath.EMPTY, format2, depth, 0, expMap2);
|
makeElementFormatSetting(fViewer, TreePath.EMPTY, format2, depth, 0, expMap2);
|
||||||
ArrayList<ElementFormatSetting> expectElementFormats2 = new ArrayList<>(
|
ArrayList<ElementFormatSetting> expectElementFormats2 = new ArrayList<>(expMap2.values());
|
||||||
expMap2.values());
|
|
||||||
setFormatAndValidate(preferenceFormat, elementFormats2, expectElementFormats2, true, true, false);
|
setFormatAndValidate(preferenceFormat, elementFormats2, expectElementFormats2, true, true, false);
|
||||||
|
|
||||||
// Generate an event which will cause all cache entries to be marked dirty.
|
// Generate an event which will cause all cache entries to be marked dirty.
|
||||||
|
@ -491,8 +489,7 @@ abstract public class FormattedValueTests extends TestCase
|
||||||
ArrayList<ElementFormatSetting> elementFormats3 = new ArrayList<>(map3.values());
|
ArrayList<ElementFormatSetting> elementFormats3 = new ArrayList<>(map3.values());
|
||||||
HashMap<String, ElementFormatSetting> expMap3 = new HashMap<>();
|
HashMap<String, ElementFormatSetting> expMap3 = new HashMap<>();
|
||||||
makeElementFormatSetting(fViewer, TreePath.EMPTY, format3, depth, 0, expMap3);
|
makeElementFormatSetting(fViewer, TreePath.EMPTY, format3, depth, 0, expMap3);
|
||||||
ArrayList<ElementFormatSetting> expectElementFormats3 = new ArrayList<>(
|
ArrayList<ElementFormatSetting> expectElementFormats3 = new ArrayList<>(expMap3.values());
|
||||||
expMap3.values());
|
|
||||||
setFormatAndValidate(preferenceFormat, elementFormats3, expectElementFormats3, true, true, true);
|
setFormatAndValidate(preferenceFormat, elementFormats3, expectElementFormats3, true, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -476,8 +476,7 @@ public class GoToAddressBarWidget {
|
||||||
String id = UNKNOWN_CONTEXT_ID;
|
String id = UNKNOWN_CONTEXT_ID;
|
||||||
if (context instanceof IAdaptable) {
|
if (context instanceof IAdaptable) {
|
||||||
IAdaptable adaptable = (IAdaptable) context;
|
IAdaptable adaptable = (IAdaptable) context;
|
||||||
IRecurringDebugContext recurringDebugContext = adaptable
|
IRecurringDebugContext recurringDebugContext = adaptable.getAdapter(IRecurringDebugContext.class);
|
||||||
.getAdapter(IRecurringDebugContext.class);
|
|
||||||
if (recurringDebugContext != null) {
|
if (recurringDebugContext != null) {
|
||||||
try {
|
try {
|
||||||
id = recurringDebugContext.getContextID();
|
id = recurringDebugContext.getContextID();
|
||||||
|
|
|
@ -660,7 +660,6 @@ public class MemoryBrowser extends ViewPart
|
||||||
|
|
||||||
label += ' ' + renderingType;
|
label += ' ' + renderingType;
|
||||||
|
|
||||||
|
|
||||||
// Allow the memory block to customize the label. The platform's
|
// Allow the memory block to customize the label. The platform's
|
||||||
// Memory view support this (it was done in the call to
|
// Memory view support this (it was done in the call to
|
||||||
// rendering.getLabel() above)
|
// rendering.getLabel() above)
|
||||||
|
@ -1412,8 +1411,7 @@ public class MemoryBrowser extends ViewPart
|
||||||
if (retrieval instanceof IMemoryBlockRetrievalExtension) {
|
if (retrieval instanceof IMemoryBlockRetrievalExtension) {
|
||||||
retrievalExtension = (IMemoryBlockRetrievalExtension) retrieval;
|
retrievalExtension = (IMemoryBlockRetrievalExtension) retrieval;
|
||||||
} else if (retrieval instanceof IAdaptable) {
|
} else if (retrieval instanceof IAdaptable) {
|
||||||
retrievalExtension = ((IAdaptable) retrieval)
|
retrievalExtension = ((IAdaptable) retrieval).getAdapter(IMemoryBlockRetrievalExtension.class);
|
||||||
.getAdapter(IMemoryBlockRetrievalExtension.class);
|
|
||||||
}
|
}
|
||||||
if (retrievalExtension != null) {
|
if (retrievalExtension != null) {
|
||||||
if (retrievalExtension instanceof IMemorySpaceAwareMemoryBlockRetrieval) {
|
if (retrievalExtension instanceof IMemorySpaceAwareMemoryBlockRetrieval) {
|
||||||
|
|
|
@ -42,10 +42,8 @@ public final class QMakeEnvInfo {
|
||||||
Collection<IFile> sensitiveFiles) {
|
Collection<IFile> sensitiveFiles) {
|
||||||
this.proFile = proFile;
|
this.proFile = proFile;
|
||||||
this.qmakeFilePath = qmakeFilePath;
|
this.qmakeFilePath = qmakeFilePath;
|
||||||
this.environment = environment != null ? new HashMap<>(environment)
|
this.environment = environment != null ? new HashMap<>(environment) : Collections.<String, String>emptyMap();
|
||||||
: Collections.<String, String>emptyMap();
|
this.sensitiveFiles = sensitiveFiles != null ? new HashSet<>(sensitiveFiles) : Collections.<IFile>emptySet();
|
||||||
this.sensitiveFiles = sensitiveFiles != null ? new HashSet<>(sensitiveFiles)
|
|
||||||
: Collections.<IFile>emptySet();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -61,8 +61,7 @@ public final class QMakeInfo implements IQMakeInfo {
|
||||||
this.qtVersion = QMakeVersion.create(queryMap.get(QMakeParser.KEY_QT_VERSION));
|
this.qtVersion = QMakeVersion.create(queryMap.get(QMakeParser.KEY_QT_VERSION));
|
||||||
List<String> tmpQtImportPaths = new ArrayList<>(
|
List<String> tmpQtImportPaths = new ArrayList<>(
|
||||||
QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_IMPORTS));
|
QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_IMPORTS));
|
||||||
List<String> tmpQtQmlPaths = new ArrayList<>(
|
List<String> tmpQtQmlPaths = new ArrayList<>(QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_QML));
|
||||||
QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_QML));
|
|
||||||
this.qtDocPath = QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_DOCS);
|
this.qtDocPath = QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_DOCS);
|
||||||
|
|
||||||
this.involvedQMakeFiles = QMakeParser.qmake3DecodeValueList(proMap,
|
this.involvedQMakeFiles = QMakeParser.qmake3DecodeValueList(proMap,
|
||||||
|
|
|
@ -76,8 +76,7 @@ public class QtPDOMQObject extends AbstractQtPDOMClass {
|
||||||
|
|
||||||
// Store the array into the Database.
|
// Store the array into the Database.
|
||||||
long arrayRec = getDB().getRecPtr(Field.ClassInfos.getRecord(record));
|
long arrayRec = getDB().getRecPtr(Field.ClassInfos.getRecord(record));
|
||||||
QtPDOMArray<ClassInfo> pdomArray = new QtPDOMArray<>(getQtLinkage(), ClassInfo.Codec,
|
QtPDOMArray<ClassInfo> pdomArray = new QtPDOMArray<>(getQtLinkage(), ClassInfo.Codec, arrayRec);
|
||||||
arrayRec);
|
|
||||||
arrayRec = pdomArray.set(array);
|
arrayRec = pdomArray.set(array);
|
||||||
|
|
||||||
// Update the record that is stored in the receiver's field.
|
// Update the record that is stored in the receiver's field.
|
||||||
|
@ -89,8 +88,7 @@ public class QtPDOMQObject extends AbstractQtPDOMClass {
|
||||||
|
|
||||||
// Read the array from the Database and insert the elements into the Map that is to be returned.
|
// Read the array from the Database and insert the elements into the Map that is to be returned.
|
||||||
long arrayRec = getDB().getRecPtr(Field.ClassInfos.getRecord(record));
|
long arrayRec = getDB().getRecPtr(Field.ClassInfos.getRecord(record));
|
||||||
QtPDOMArray<ClassInfo> pdomArray = new QtPDOMArray<>(getQtLinkage(), ClassInfo.Codec,
|
QtPDOMArray<ClassInfo> pdomArray = new QtPDOMArray<>(getQtLinkage(), ClassInfo.Codec, arrayRec);
|
||||||
arrayRec);
|
|
||||||
|
|
||||||
ClassInfo[] array = pdomArray.get();
|
ClassInfo[] array = pdomArray.get();
|
||||||
if (array == null)
|
if (array == null)
|
||||||
|
|
|
@ -72,8 +72,7 @@ public class TestingSession implements ITestingSession {
|
||||||
* statistics without model scanning.
|
* statistics without model scanning.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private Map<ITestItem.Status, Integer> statusCounters = new EnumMap<>(
|
private Map<ITestItem.Status, Integer> statusCounters = new EnumMap<>(ITestItem.Status.class);
|
||||||
ITestItem.Status.class);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The flag stores whether the testing session contains errors at the
|
* The flag stores whether the testing session contains errors at the
|
||||||
|
|
Loading…
Add table
Reference in a new issue