Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,7 @@ public void testThatSettingAttributesTriggerAdditionalResourceChangeEvent() thro
IMarker marker = resource.createMarker(TEST_PROBLEM_MARKER);
marker.setAttribute(IMarker.MESSAGE, createRandomString());
marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
TestUtil.waitForCondition(() -> listener.numberOfChanges() == 3, 5000);
assertThat(listener.numberOfChanges()).isEqualTo(3);
}
}
Expand All @@ -362,6 +363,7 @@ public void testThatMarkersWithAttributesOnlyTriggerOnResourceChangeEvent() thro
// each setAttributes triggers one resource change event
resource.createMarker(TEST_PROBLEM_MARKER,
Map.of(IMarker.MESSAGE, createRandomString(), IMarker.PRIORITY, IMarker.PRIORITY_HIGH));
TestUtil.waitForCondition(() -> listener.numberOfChanges() == 1, 5000);
assertThat(listener.numberOfChanges()).isEqualTo(1);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@

import static org.assertj.core.api.Assertions.assertThat;

import java.util.HashMap;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import java.util.concurrent.ConcurrentHashMap;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IMarkerDelta;
import org.eclipse.core.resources.IResource;
Expand All @@ -31,7 +34,7 @@
* A support class for the marker tests.
*/
public class MarkersChangeListener implements IResourceChangeListener {
protected HashMap<IPath, List<IMarkerDelta>> changes;
private final Map<IPath, List<IMarkerDelta>> changes = new ConcurrentHashMap<>();

public MarkersChangeListener() {
reset();
Expand Down Expand Up @@ -72,11 +75,12 @@ public void assertChanges(IResource resource, IMarker[] added, IMarker[] removed
* changes since last reset.
*/
public void assertNumberOfAffectedResources(int expectedNumberOfResource) {
TestUtil.waitForCondition(() -> changes.size() == expectedNumberOfResource, 5000);
assertThat(changes).hasSize(expectedNumberOfResource);
}

public void reset() {
changes = new HashMap<>();
changes.clear();
}

/**
Expand All @@ -96,11 +100,7 @@ protected void resourceChanged(IResourceDelta delta) {
}
if ((delta.getFlags() & IResourceDelta.MARKERS) != 0) {
IPath path = delta.getFullPath();
List<IMarkerDelta> v = changes.get(path);
if (v == null) {
v = new Vector<>();
changes.put(path, v);
}
List<IMarkerDelta> v = changes.computeIfAbsent(path, p -> Collections.synchronizedList(new ArrayList<>()));
IMarkerDelta[] markerDeltas = delta.getMarkerDeltas();
for (IMarkerDelta markerDelta : markerDeltas) {
v.add(markerDelta);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
*******************************************************************************/
package org.eclipse.core.tests.resources;

import java.util.concurrent.atomic.AtomicInteger;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceChangeListener;

Expand All @@ -21,25 +22,25 @@
*/
public class MarkersNumberOfDeltasChangeListener implements IResourceChangeListener {

private int number = 0;
private AtomicInteger number = new AtomicInteger();

/**
* Returns the number of resource changed calls.
*/
public int numberOfChanges() {
return number;
return number.get();
}


public void reset() {
number = 0;
number.set(0);
}
/**
* Notification from the workspace. Extract the marker changes.
*/
@Override
public void resourceChanged(IResourceChangeEvent event) {
number++;
number.incrementAndGet();
}

}
Loading