From e5d962f29ddc9c5268bc6c288b88f6c316d1b2eb Mon Sep 17 00:00:00 2001 From: Lars Vogel Date: Fri, 7 Aug 2026 14:17:52 +0200 Subject: [PATCH] Fix dead REPLACED check in the sample editor resource listener IResourceDelta.REPLACED is a delta flag, not a delta kind. getKind() only returns NO_CHANGE, ADDED, REMOVED, CHANGED, ADDED_PHANTOM or REMOVED_PHANTOM, so comparing it against REPLACED was always false and the editor never closed when its sample.properties input was replaced. Test REPLACED against getFlags() on a CHANGED delta instead, which is how ResourceComparator reports a resource that was deleted and recreated in the same operation. --- .../org/eclipse/pde/internal/ui/samples/SampleEditor.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/SampleEditor.java b/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/SampleEditor.java index 85b1bbc5883..227c25a570f 100644 --- a/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/SampleEditor.java +++ b/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/SampleEditor.java @@ -85,7 +85,9 @@ public boolean visit(IResourceDelta delta) throws CoreException { IResource resource = delta.getResource(); if (resource instanceof IFile file) { if (file.equals(((IFileEditorInput) getEditorInput()).getFile())) { - if (delta.getKind() == IResourceDelta.REMOVED || delta.getKind() == IResourceDelta.REPLACED) { + if (delta.getKind() == IResourceDelta.REMOVED + || (delta.getKind() == IResourceDelta.CHANGED + && (delta.getFlags() & IResourceDelta.REPLACED) != 0)) { close(); } return false;