mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-17 22:15:23 +02:00
[229674] - [view model] Assertion error in DefaultVMContentProviderStrategy.updateChildrenWithCounts
This commit is contained in:
parent
6d882f8fb7
commit
1d77fd5491
1 changed files with 13 additions and 11 deletions
|
@ -16,6 +16,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor;
|
import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor;
|
||||||
|
import org.eclipse.dd.dsf.concurrent.CountingRequestMonitor;
|
||||||
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
|
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
|
||||||
import org.eclipse.dd.dsf.concurrent.MultiRequestMonitor;
|
import org.eclipse.dd.dsf.concurrent.MultiRequestMonitor;
|
||||||
import org.eclipse.dd.dsf.concurrent.RequestMonitor;
|
import org.eclipse.dd.dsf.concurrent.RequestMonitor;
|
||||||
|
@ -287,13 +288,13 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider
|
||||||
private void updateChildrenWithCounts(final IChildrenUpdate update, IVMNode node, Integer[] nodeElementCounts) {
|
private void updateChildrenWithCounts(final IChildrenUpdate update, IVMNode node, Integer[] nodeElementCounts) {
|
||||||
// Create the multi request monitor to mark update when querying all
|
// Create the multi request monitor to mark update when querying all
|
||||||
// children nodes is finished.
|
// children nodes is finished.
|
||||||
final MultiRequestMonitor<RequestMonitor> elementsMultiRequestMon =
|
CountingRequestMonitor multiRm = new CountingRequestMonitor(getVMProvider().getExecutor(), null) {
|
||||||
new MultiRequestMonitor<RequestMonitor>(getVMProvider().getExecutor(), null) {
|
|
||||||
@Override
|
@Override
|
||||||
protected void handleCompleted() {
|
protected void handleCompleted() {
|
||||||
update.done();
|
update.done();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
int multiRmCount = 0;
|
||||||
|
|
||||||
// Iterate through all child nodes and if requested range matches, call them to
|
// Iterate through all child nodes and if requested range matches, call them to
|
||||||
// get their elements.
|
// get their elements.
|
||||||
|
@ -316,7 +317,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider
|
||||||
nodes[i],
|
nodes[i],
|
||||||
new VMChildrenUpdate(
|
new VMChildrenUpdate(
|
||||||
update, elementsStartIdx, elementsLength,
|
update, elementsStartIdx, elementsLength,
|
||||||
elementsMultiRequestMon.add(new DataRequestMonitor<List<Object>>(getVMProvider().getExecutor(), null) {
|
new DataRequestMonitor<List<Object>>(getVMProvider().getExecutor(), multiRm) {
|
||||||
@Override
|
@Override
|
||||||
protected void handleCompleted() {
|
protected void handleCompleted() {
|
||||||
// Workaround for a bug caused by an optimization in the viewer:
|
// Workaround for a bug caused by an optimization in the viewer:
|
||||||
|
@ -332,16 +333,17 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elementsMultiRequestMon.requestMonitorDone(this);
|
super.handleCompleted();
|
||||||
}
|
}
|
||||||
}))
|
})
|
||||||
);
|
);
|
||||||
|
multiRmCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Guard against invalid queries.
|
// Guard against invalid queries.
|
||||||
assert !elementsMultiRequestMon.getRequestMonitors().isEmpty();
|
multiRm.setDoneCount(multiRmCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue