Skip to content

Y20260414-1000

@vogella vogella tagged this 13 Apr 14:28
The checkCompletionContent method had two issues:

1. Order-dependent assertions: After async computation finishes,
   proposals from different processors are merged via
   CompletableFuture.thenAccept(addAll), and the final ordering
   depends on thread scheduling. The test assumed a fixed order.

2. Stale virtual table data: The completion proposal Table uses
   SWT.VIRTUAL. When setProposals() calls clearAll(), items are
   marked as unmaterialized but Widget.data is NOT cleared. The
   SWT.SetData handler sets both text and data, but getData() does
   not trigger SetData -- only getText()/getImage() do. The wait
   condition only checked item 0's text (via isComputingInfoEntry),
   leaving item 1 with stale data from the previous render.

Fixes:
- Check both items' text in the wait condition to force virtual
  table materialization via SWT.SetData for both items
- Make proposal assertions order-independent

Fixes https://github.com/eclipse-platform/eclipse.platform.ui/issues/3880
Assets 2
Loading