eclipse-pde / eclipse.pde

Eclipse Public License 2.0
28 stars 74 forks source link

org.eclipse.pde.api.tools.builder.tests.compatibility.BundleVersionTests "the baseline 'workspace' is disposed" #553

Closed laeubi closed 2 months ago

laeubi commented 1 year ago

Sometimes the test fails with

Component 'exportedBundle Plug-in' in the baseline 'workspace' is disposed
org.eclipse.core.runtime.CoreException: Component 'exportedBundle Plug-in' in the baseline 'workspace' is disposed
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.baselineDisposed(BundleComponent.java:1259)
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.getBundleDescription(BundleComponent.java:980)
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.createApiDescription(BundleComponent.java:388)
    at org.eclipse.pde.api.tools.internal.model.Component.getApiDescription(Component.java:106)
    at org.eclipse.pde.api.tools.builder.tests.ApiBuilderTest.exportApiComponent(ApiBuilderTest.java:364)
    at org.eclipse.pde.api.tools.builder.tests.compatibility.BundleVersionTests.setupTest(BundleVersionTests.java:162)
    at org.eclipse.pde.api.tools.builder.tests.compatibility.BundleVersionTests.test001(BundleVersionTests.java:192)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at junit.framework.TestCase.runTest(TestCase.java:177)
    at org.eclipse.jdt.core.tests.junit.extension.TestCase.runTest(TestCase.java:983)
    at junit.framework.TestCase.runBare(TestCase.java:142)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:130)
    at junit.framework.TestSuite.runTest(TestSuite.java:241)
    at junit.framework.TestSuite.run(TestSuite.java:236)
    at junit.framework.TestSuite.runTest(TestSuite.java:241)
    at junit.framework.TestSuite.run(TestSuite.java:236)
    at junit.framework.TestSuite.runTest(TestSuite.java:241)
    at junit.framework.TestSuite.run(TestSuite.java:236)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:27)
    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.apache.maven.surefire.api.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:137)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:148)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:88)
    at org.eclipse.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:142)
    at org.eclipse.tycho.surefire.osgibooter.HeadlessTestApplication.start(HeadlessTestApplication.java:29)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] -> index name for \deltatest is 1491789420.index
Thread[main,5,main] -> index state updated to: REBUILDING for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/1491789420.index
Thread[main,5,main] REQUEST   background job - indexing project /deltatest
Thread[main,5,main] AWAITING JOBS count: 3
Thread[main,5,main] ENABLING  background indexing
Thread[main,5,main] removing index C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/17.0.6-10/x64/lib/jrt-fs.jar
Thread[main,5,main] -> updating meta-index with 0 elements for 1185101725.index
Thread[main,5,main] -> meta-index updated for 1185101725.index
Thread[main,5,main] removing index C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/17.0.6-10/x64/lib/jrt-fs.jar
Thread[main,5,main] -> updating meta-index with 0 elements for 1185101725.index
Thread[main,5,main] -> meta-index updated for 1185101725.index
Thread[main,5,main] DISCARD   background job family - deltatest
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] -> discarding background job  - indexing project /deltatest
Thread[main,5,main] -> index state updated to: UNKNOWN for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/1491789420.index
Thread[main,5,main] ENABLING  background indexing
Thread[main,5,main] DISCARD   DONE with background job family - deltatest
Thread[main,5,main] removing index /deltatest
Thread[main,5,main] -> index state removed for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/1491789420.index
Thread[main,5,main] -> updating meta-index with 0 elements for 1491789420.index
Thread[main,5,main] -> meta-index updated for 1491789420.index
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] -> index state updated to: REBUILDING for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/1491789420.index
Thread[main,5,main] REQUEST   background job - indexing project /deltatest
Thread[main,5,main] AWAITING JOBS count: 3
Thread[main,5,main] ENABLING  background indexing
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] -> index name for \exportedbundle is 3219681693.index
Thread[main,5,main] -> index state updated to: REBUILDING for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/3219681693.index
Thread[main,5,main] REQUEST   background job - indexing project /exportedbundle
Thread[main,5,main] AWAITING JOBS count: 4
Thread[main,5,main] ENABLING  background indexing
Thread[main,5,main] DISCARD   background job family - exportedbundle
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] -> discarding background job  - indexing project /exportedbundle
Thread[main,5,main] -> index state updated to: UNKNOWN for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/3219681693.index
Thread[main,5,main] ENABLING  background indexing
Thread[main,5,main] DISCARD   DONE with background job family - exportedbundle
Thread[main,5,main] removing index /exportedbundle
Thread[main,5,main] -> index state removed for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/3219681693.index
Thread[main,5,main] -> updating meta-index with 0 elements for 3219681693.index
Thread[main,5,main] -> meta-index updated for 3219681693.index
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] -> index state updated to: REBUILDING for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/3219681693.index
Thread[main,5,main] REQUEST   background job - indexing project /exportedbundle
Thread[main,5,main] AWAITING JOBS count: 4
Thread[main,5,main] ENABLING  background indexing
Thread[main,5,main] DISCARD   background job family - deltatest
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] -> discarding background job  - indexing project /deltatest
Thread[main,5,main] -> index state updated to: UNKNOWN for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/1491789420.index
Thread[main,5,main] ENABLING  background indexing
Thread[main,5,main] DISCARD   DONE with background job family - deltatest
Thread[main,5,main] removing index /deltatest
Thread[main,5,main] -> index state removed for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/1491789420.index
Thread[main,5,main] -> updating meta-index with 0 elements for 1491789420.index
Thread[main,5,main] -> meta-index updated for 1491789420.index
Thread[main,5,main] DISCARD   background job family - exportedbundle
Thread[main,5,main] DISABLING background indexing
Thread[main,5,main] -> discarding background job  - indexing project /exportedbundle
Thread[main,5,main] -> index state updated to: UNKNOWN for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/3219681693.index
Thread[main,5,main] ENABLING  background indexing
Thread[main,5,main] DISCARD   DONE with background job family - exportedbundle
Thread[main,5,main] removing index C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/17.0.6-10/x64/lib/jrt-fs.jar
Thread[main,5,main] -> updating meta-index with 0 elements for 1185101725.index
Thread[main,5,main] -> meta-index updated for 1185101725.index
Thread[main,5,main] removing index /exportedbundle
Thread[main,5,main] -> index state removed for: file:/D:/a/eclipse.pde/eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/target/work/data/.metadata/.plugins/org.eclipse.jdt.core/3219681693.index
Thread[main,5,main] -> updating meta-index with 0 elements for 3219681693.index
Thread[main,5,main] -> meta-index updated for 3219681693.index
Thread[main,5,main] ENABLING  background indexing
jukzi commented 1 year ago

Sadly BundleVersionTests fails very frequently on verification builds. Could not reproduce locally on WIN. Also all calls of dispose() / getBundleDescription() during that Tests happen in the same Thread so that it probably is not an concurrency issue.

jukzi commented 1 year ago

fails on I Build too: https://download.eclipse.org/eclipse/downloads/drops4/R-4.28-202306050440/testresults/html/org.eclipse.pde.api.tools.tests_ep428I-unit-cen64-gtk3-java17_linux.gtk.x86_64_17.html

org.eclipse.core.runtime.CoreException: Component 'exportedBundle Plug-in' in the baseline 'workspace' is disposed
at org.eclipse.pde.api.tools.internal.model.BundleComponent.baselineDisposed(BundleComponent.java:1259)
at org.eclipse.pde.api.tools.internal.model.BundleComponent.getBundleDescription(BundleComponent.java:980)
at org.eclipse.pde.api.tools.internal.model.BundleComponent.createApiDescription(BundleComponent.java:388)
at org.eclipse.pde.api.tools.internal.model.Component.getApiDescription(Component.java:106)
at org.eclipse.pde.api.tools.builder.tests.ApiBuilderTest.exportApiComponent(ApiBuilderTest.java:364)
at org.eclipse.pde.api.tools.builder.tests.compatibility.BundleVersionTests.setupTest(BundleVersionTests.java:162)
at org.eclipse.pde.api.tools.builder.tests.compatibility.BundleVersionTests.test002(BundleVersionTests.java:205)
laeubi commented 1 year ago

I think the error reporting is a bit odd here because it claims the baseline is disposed when fBundleDescription is null but this can also happen:

  1. org.eclipse.pde.api.tools.internal.model.BundleComponent.init() fails (so the component was not successfully init)
  2. org.eclipse.pde.api.tools.internal.model.BundleComponent.dispose() is called (so the component itself was disposed)
laeubi commented 1 year ago

I have now enhanced error reporting here:

it shows that init is successful but it seems the component is unluckily dispose at this place already:

Caused by: java.lang.RuntimeException: Component was disposed here
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.dispose(BundleComponent.java:191)
    at org.eclipse.pde.api.tools.internal.model.ProjectComponent.dispose(ProjectComponent.java:180)
    at org.eclipse.pde.api.tools.internal.model.ApiBaseline.doDispose(ApiBaseline.java:847)
    at org.eclipse.pde.api.tools.internal.model.WorkspaceBaseline.dispose(WorkspaceBaseline.java:56)
    at org.eclipse.pde.api.tools.internal.ApiBaselineManager.disposeWorkspaceBaseline(ApiBaselineManager.java:658)
    at org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.processJavaElementDeltas(WorkspaceDeltaProcessor.java:82)
    at org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.elementChanged(WorkspaceDeltaProcessor.java:51)
    at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1757)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1745)
    at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1578)
    at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1554)
    at org.eclipse.jdt.internal.core.DeltaProcessor.notifyAndFire(DeltaProcessor.java:2275)
    at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2165)
    at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:501)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:321)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:311)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:174)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:458)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1586)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:50)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

The synchronization is at least arguable here and seem to trying to perform premature optimization, beside that of course a component can be disposed anywhere anytime even after that so I'm a bit unsure how to handel this correctly if one has already fetched the component and it is then gone afterwards...

laeubi commented 1 year ago

This should hopefully be fixed by

My understanding of the issue is the following:

  1. In the test setup a component is fetched from the Workspace Baseline
  2. Then an export of that component is triggers, this can lead to resource change events what in the end could trigger a disposal of the Workspace Baseline
  3. Now after that it is tried to access this component but it is already disposed

I now did the following:

  1. Read the component before any resource changes are performed
  2. If it still fails, wait until all jobs are done
  3. then retry the operation (up to 3 times)
jukzi commented 4 months ago

still happens:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.tycho:tycho-apitools-plugin:4.0.8:verify (verify) on project org.eclipse.pde.ui: Execute ApiApplication failed
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: org.apache.maven.plugin.MojoExecutionException: Execute ApiApplication failed
    at org.eclipse.tycho.apitools.ApiAnalysisMojo.performAnalysis (ApiAnalysisMojo.java:310)
    at org.eclipse.tycho.apitools.ApiAnalysisMojo.execute (ApiAnalysisMojo.java:193)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: java.lang.RuntimeException: Component was disposed here
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.dispose (BundleComponent.java:192)
    at org.eclipse.pde.api.tools.internal.model.ProjectComponent.dispose (ProjectComponent.java:178)
    at org.eclipse.pde.api.tools.internal.model.ApiBaseline.doDispose (ApiBaseline.java:837)
    at org.eclipse.pde.api.tools.internal.model.WorkspaceBaseline.dispose (WorkspaceBaseline.java:56)
    at org.eclipse.pde.api.tools.internal.ApiBaselineManager.lambda$2 (ApiBaselineManager.java:639)
    at org.eclipse.pde.api.tools.internal.ApiBaselineManager.disposeWorkspaceBaseline (ApiBaselineManager.java:662)
    at org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.processJavaElementDeltas (WorkspaceDeltaProcessor.java:80)
    at org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.elementChanged (WorkspaceDeltaProcessor.java:51)
    at org.eclipse.jdt.internal.core.DeltaProcessor$3.run (DeltaProcessor.java:1751)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners (DeltaProcessor.java:1739)
    at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta (DeltaProcessor.java:1572)
    at org.eclipse.jdt.internal.core.DeltaProcessor.fire (DeltaProcessor.java:1548)
    at org.eclipse.jdt.internal.core.DeltaProcessor.notifyAndFire (DeltaProcessor.java:2259)
    at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged (DeltaProcessor.java:2151)
    at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged (DeltaProcessingState.java:501)
    at org.eclipse.core.internal.events.NotificationManager$1.run (NotificationManager.java:321)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.NotificationManager.notify (NotificationManager.java:311)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges (NotificationManager.java:174)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange (Workspace.java:458)
    at org.eclipse.core.internal.resources.Workspace.endOperation (Workspace.java:1586)
    at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:2465)
    at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:2476)
    at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation (JavaModelOperation.java:810)
    at org.eclipse.jdt.core.JavaCore.setClasspathContainer (JavaCore.java:6217)
    at org.eclipse.pde.internal.core.PluginModelManager$UpdateClasspathsJob.run (PluginModelManager.java:104)
    at org.eclipse.core.internal.jobs.Worker.run (Worker.java:63)

https://github.com/eclipse-pde/eclipse.pde/actions/runs/9384000184/job/25838861125?pr=1290

jukzi commented 2 months ago

The disposed error still happens but not in BundleVersionTests. The remaining error is tracked in https://github.com/eclipse-pde/eclipse.pde/issues/1310