Skip to content

Y20260428-1000

@vogella vogella tagged this 28 Apr 09:06
The sort used by collectRequirements and previously
addTransitiveDependenciesWithForbiddenAccess only compared bundle
symbolic names. When two bundles share the same symbolic name (e.g.
jakarta.annotation-api 1.3.5 and 2.1.1 coexisting in a target), the
stable-sort source order leaks through from a HashSet iteration,
which varies between JVM runs. This caused the "Updating plug-in
dependencies" job to rewrite Plug-in Dependencies classpath
containers on every IDE restart and mark projects dirty.

Add a version tiebreaker (higher version first, matching
PDEState.HIGHER_VERSION_FIRST) followed by bundle id as a final
tiebreaker.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Assets 2
Loading