Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skip the method PluginsTab::performApply until after activation #1252

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

fedejeanne
Copy link
Contributor

@fedejeanne fedejeanne commented Apr 24, 2024

What it does

Reintroduces the improvements of #1233 but without the regressions that it generated (see #1250) by skipping the whole method PluginsTab::performApply before the Plugins tab was activated. The reason for this is that this method changes some values in the configuration it receives as a parameter and it does it too early. If the method is called after having completely activated the tab then the configuration already has the proper values and they will not be overwritten.

Reintroduces #1233
While also fixing #1250

Bug description

(Regression introduced by #1233 and reported in #1250)
When a Launch configuration that has a tab called Plugins (e.g. an Eclipse Application or a JUnit Plug-In Test) is opened and the Plugins tab is selected, the default values are wrong (see screenshots in #1250 (comment))

How to reproduce bug #1250

  • Launch a JUnit Plugin Test with Right click > Run As... > JUnit Plugin Test
  • Open the Run configurations dialog and select that run configuration that was just created
  • Switch to the Plugins tab --> You'll see that the usual default values for Default Start Level (4) and Default Auto-Start (false) will be replaced by 1 and true, like this:

325209441-c43e1345-675d-40aa-9aff-4c628c2e78b2

After applying this PR

  • The default values should be 4 and false again

325209240-92438081-ae90-4ac5-88f3-706c626344ef

DISCLAIMER: the screenshots are from this #1250 (comment)

How to test

@fedejeanne
Copy link
Contributor Author

@iloveeclipse this is my proposed fix, could you please also test it?

@fedejeanne fedejeanne force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from 097e35b to d9768bf Compare April 24, 2024 14:55
Copy link

github-actions bot commented Apr 24, 2024

Test Results

   285 files  ±0     285 suites  ±0   48m 58s ⏱️ - 6m 10s
 3 581 tests  - 1   3 505 ✅ ±0   76 💤 ±0  0 ❌ ±0 
10 935 runs   - 1  10 704 ✅ ±0  231 💤 ±0  0 ❌ ±0 

Results for commit 1cdde48. ± Comparison against base commit 33efe8c.

This pull request removes 1 test.
[20: Eclipse RCP application] ‑ Unknown test

♻️ This comment has been updated with latest results.

Copy link
Member

@iloveeclipse iloveeclipse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created new test in a plugin with wizard
Executed plugin test for first time from package explorer (without any dialog)
Opened launch config after that
Clicked on every tab except plugins - "Apply" is disabled
Clicked on Plugins tab - "Apply" is enabled.
I see that this attribute is added:

<booleanAttribute key="show_selected_only" value="false"/>

It doesn't happen with #1251

@iloveeclipse
Copy link
Member

What you should test is that opening Launch dialog should NOT change launch config and not add anything to the launch configuration without user actually changing any value in the dialog, so just opening and closing dialog should NOT ask that "something is changed, do you want to save"?

@HannesWell
Copy link
Member

I haven't looked into the details (and will probably not have the time to do it this evening), but maybe instead of skipping the call to performApply() entirely, maybe it is possible to just make the code that caused the NPE in #1233 null save?

@fedejeanne
Copy link
Contributor Author

@iloveeclipse which wizard did you use? I can't reproduce the error by creating a new JUnit Plugin Test configuration in the Run configurations dialog. I am moving through all tabs in the launch configuration (coming to the Plugins tab at the end) and the Apply button is never enabled, there are no changes :-\

@HannesWell I can look into that once I'm able to reproduce the error that @iloveeclipse mentioned in #1252 (review)

@iloveeclipse
Copy link
Member

No wizards, no dialogs, simply run a test from package explorer - this will create launch config. Opening same config in dialog changes it as decribed.

@HannesWell
Copy link
Member

Alternatively or at the same time some of the config reads should probably be moved back to the initialize method. Especially those that correspond to the problematic attributes (they are cheap to compute).

@fedejeanne
Copy link
Contributor Author

@iloveeclipse I was able to reproduce the error and I found the culprit: some attributes like show_selected_only are being written to the configuration and they hold the default value (false). This enables the Apply button because the button compares the original configuration with the "new" one and they only differ in the fact that the "new" one has 1 extra entry: show_selected_only: false (default value). If I delete this entry then I fix the problem for the JUnit Plugin Test configurations but I break it for the Eclipse Application configuration (this one works in the exact opposite way: the "original" configuration has the entry with the default value so I shouldn't remove it from the "new" one).

@HannesWell making the code null-safe doesn't work (I tried it) because writing into the configuration is based on the values of the fields that were null so when I skip those write-operations, the "original" and the "new" configuration end up:
a) Being different --> The Apply button is enabled
b) Being wrong --> The "new" one (the one that reflects what the UI says) is wrong and sets the Auto-Start and the Default Start Level to true and 1 respectively.

I'm going to keep looking for a solution for a while longer but I think that, regardless of whether or not I find one today (and I don't think I will), we should apply #1251 and give ourselves some time to test this properly. WDYT?

@iloveeclipse
Copy link
Member

we should apply #1251 and give ourselves some time to test this properly. WDYT

Yes. It would be also better to have one commit that fixes original issue as multiple. I will merge the revert now.

@merks
Copy link
Contributor

merks commented Apr 24, 2024

FYI. That launch configuration resources change, i.e., reformat or add new attributes, merely by visiting the configuration is something that’s been happening for a very long time.

@iloveeclipse
Copy link
Member

FYI. That launch configuration resources change, i.e., reformat or add new attributes, merely by visiting the configuration is something that’s been happening for a very long time.

May be, but in concrete case the commit in question was yet another case that was problematic, reproducible and fixed with reverting the change.

@fedejeanne fedejeanne closed this Apr 24, 2024
@fedejeanne fedejeanne reopened this Apr 26, 2024
@fedejeanne fedejeanne force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from d9768bf to 1a7c452 Compare April 26, 2024 06:24
@fedejeanne
Copy link
Contributor Author

I was finally able to track down all the attributes that were causing the Apply button to be enabled by simply selecting a tab in a run configuration.

I did it with the help of these changes in the class org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer

/**
 * updates the button states
 */
private void updateButtons() { // modifiy this method
	boolean isDirty = isDirty();
	printDebugInfo(isDirty); // add this call
	fApplyButton.setEnabled(isDirty && canSave());
	fRevertButton.setEnabled(isDirty);
	fShowCommandLineButton.setEnabled(canLaunch());
}

@SuppressWarnings("nls")
private void printDebugInfo(boolean dirty) { // add this method
	if (!dirty)
		return;

	System.out.println("The launch configuration has changed");

	printMissingKeys(fOriginal, getWorkingCopy());
	printMissingKeys(getWorkingCopy(), fOriginal);
}

/**
 * Print the keys of <code>a</code> that are not present in <code>b</code>
 */
@SuppressWarnings("nls")
private void printMissingKeys(ILaunchConfiguration a, ILaunchConfiguration b) { // add this method
	try {
		Map<String, Object> aAttr = a.getAttributes();
		Map<String, Object> temp = new HashMap<>(b.getAttributes());
		for (String k : aAttr.keySet())
			temp.remove(k);

		if (!temp.isEmpty())
			System.out.println(
					"Keys missing in '" + a.getName() + "' (" + a.getType().getName() + "): " + temp.keySet());
	} catch (CoreException e) {
		DebugUIPlugin.log(e);
	}
}

I also removed all those attributes instead of setting them to their original values (see the 2nd commit in this PR). This fixes that problem.

How I tested

  • I modified org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer as described above (it helps spotting the offending attribute)
  • I created new run configurations directly from the Run Configurations dialog
  • I selected each and every tab in the newly created configurations --> The Apply button should not be enabled
  • I deleted all the created configurations and closed the Run Configurations dialog
  • I created run configurations again by doing (in the package explorer) (Right click) Run As... > XYZ
  • I opened the Run Configurations dialog again
  • I selected each and every tab in the newly created configurations --> The Apply button should not be enabled

The reason I did this is because creating the run configurations (instances of LaunchConfiguration and LaunchConfigurationWorkingCopy) is done by different methods when creating them from the wizard vs doing it via (Right click) Run As... > XYZ

I also double checked that the Default Start Level and Default Auto-Start still have their appropriate default values of 4 and true, both for configurations of type Eclipse Application and JUnit Plu-in Test.

Would you guys please take a final look into the new changes and report back in case of new regressions? It would be helpful for me if you could modify org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationTabGroupViewer as described above and paste the output in the console after you selected each and every tab in the run configuration. This would show the problematic attributes like:

Keys missing in 'Eclipse Application' (Eclipse Application): [includeOptional, show_selected_only, useCustomFeatures, automaticAdd]

If this PR is then OK for you then I can squash the commits.

@fedejeanne
Copy link
Contributor Author

The failing test seems unrelated:

Failures: 
  Java7MethodUsageTests>TestCase.runTest:972->testStringSwitchF:76->x1:113->Java7UsageTest.deployUsageTest:106->ApiBuilderTest.expectingNoJDTProblemsFor:215 Should not be a JDT error: Access restriction: The method 'MethodUsageClass.m3()' is not API (restriction on required project 'refprojectjava7')

@fedejeanne fedejeanne requested a review from iloveeclipse April 29, 2024 06:53
@fedejeanne fedejeanne force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from 1a7c452 to 1f17fbd Compare May 6, 2024 07:09
@fedejeanne
Copy link
Contributor Author

@iloveeclipse are the changes introduced in 1f17fbd ok?

@iloveeclipse
Copy link
Member

are the changes introduced in 1f17fbd ok?

I have no time for this, sorry.
As before:

  1. please make sure the launch configs that are created from Package Explorer don't get altered by opening them in the dialog
  2. the launch config defaults aren't changed compared to the pre-PR state
  3. Try to actually run something with the launch config, both application and tests and check they can be started as before.

@fedejeanne fedejeanne force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from 1f17fbd to 791518f Compare May 6, 2024 07:33
@fedejeanne
Copy link
Contributor Author

@iloveeclipse I re-checked points 1., 2. and 3. and I see no regressions ✔️

Would you retract your request for changes so this PR can be merged as soon as @HannesWell gives the green light? Thank you.

@iloveeclipse
Copy link
Member

Note: I just quickly scanned through the PR without looking into the actual fix.

@fedejeanne fedejeanne force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from 791518f to dc7ca51 Compare May 6, 2024 07:49
@iloveeclipse iloveeclipse requested a review from HannesWell May 6, 2024 08:07
@HannesWell
Copy link
Member

Would you retract your request for changes so this PR can be merged as soon as @HannesWell gives the green light? Thank you.

I'll have a look at this tomorrow, I was too busy today with preparing Equinox for Windows on ARM.

@fedejeanne fedejeanne marked this pull request as draft July 31, 2024 08:23
@fedejeanne fedejeanne force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from 3a6e1c2 to 9b4712f Compare July 31, 2024 09:36
@fedejeanne fedejeanne marked this pull request as ready for review July 31, 2024 11:00
@fedejeanne
Copy link
Contributor Author

The build failures seem unrelated but I'm not sure what they mean.

Linux
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.003 s <<< FAILURE! -- in org.eclipse.pde.junit.runtime.tests.JUnit5SuiteExecutionTest
org.eclipse.pde.junit.runtime.tests.JUnit5SuiteExecutionTest -- Time elapsed: 0.003 s <<< ERROR!
org.eclipse.core.internal.resources.ResourceException(/verification.tests.junit5)[374]: java.lang.Exception: Resource '/verification.tests.junit5' already exists.
	at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
	at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
	at org.eclipse.core.internal.resources.Resource.checkDoesNotExist(Resource.java:343)
	at org.eclipse.core.internal.resources.Resource.checkDoesNotExist(Resource.java:330)
	at org.eclipse.core.internal.resources.Project.assertCreateRequirements(Project.java:94)
	at org.eclipse.core.internal.resources.Project.create(Project.java:305)
	at org.eclipse.core.internal.resources.Project.create(Project.java:291)
	at org.eclipse.pde.ui.tests.util.ProjectUtils.importTestProject(ProjectUtils.java:180)
	at org.eclipse.pde.junit.runtime.tests.JUnitExecutionTest.setupProjects(JUnitExecutionTest.java:73)
	at org.eclipse.pde.junit.runtime.tests.JUnit5SuiteExecutionTest.setupProjects(JUnit5SuiteExecutionTest.java:40)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.RunBefores.invokeMethod(RunBefores.java:33)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	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.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	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:140)
	at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication$1.run(AbstractUITestApplication.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Testable.lambda$1(E4Testable.java:127)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5040)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4520)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:34)
	at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:129)
	at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:44)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1481)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1454)
Mac (first one)
***WARNING: Display must be created on main thread due to Cocoa restrictions. Use vmarg -XstartOnFirstThread
Error:  Problems occurred when invoking code from plug-in: "org.eclipse.equinox.preferences".
java.lang.ExceptionInInitializerError
    at org.eclipse.pde.internal.ui.editor.text.ColorManager.initializeDefaults (ColorManager.java:51)
    at org.eclipse.pde.internal.ui.preferences.PreferenceInitializer.initializeDefaultPreferences (PreferenceInitializer.java:28)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer (PreferenceServiceRegistryHelper.java:285)
    at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults (PreferenceServiceRegistryHelper.java:114)
    at org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults (PreferencesService.java:338)
    at org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults (DefaultPreferences.java:233)
    at org.eclipse.core.internal.preferences.DefaultPreferences.load (DefaultPreferences.java:288)
    at org.eclipse.core.internal.preferences.EclipsePreferences.create (EclipsePreferences.java:375)
    at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode (EclipsePreferences.java:630)
    at org.eclipse.core.internal.preferences.EclipsePreferences.node (EclipsePreferences.java:766)
    at org.eclipse.core.internal.preferences.AbstractScope.getNode (AbstractScope.java:38)
    at org.eclipse.pde.internal.core.PDEPreferencesManager.<init> (PDEPreferencesManager.java:38)
    at org.eclipse.pde.internal.ui.PDEPlugin.getPreferenceManager (PDEPlugin.java:76)
    at org.eclipse.pde.internal.ui.shared.target.TargetStatus.initializeTargetStatus (TargetStatus.java:191)
    at org.eclipse.pde.internal.ui.PDEPlugin.start (PDEPlugin.java:216)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run (BundleContextImpl.java:833)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run (BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged (AccessController.java:571)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator (BundleContextImpl.java:825)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start (BundleContextImpl.java:775)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0 (EquinoxBundle.java:1057)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker (EquinoxBundle.java:387)
    at org.eclipse.osgi.container.Module.doStart (Module.java:639)
    at org.eclipse.osgi.container.Module.start (Module.java:498)
    at org.eclipse.osgi.framework.util.SecureAction.start (SecureAction.java:528)
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass (EclipseLazyStarter.java:122)
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass (ClasspathManager.java:620)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass (ModuleClassLoader.java:348)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:414)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass0 (BundleLoader.java:520)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:434)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass (ModuleClassLoader.java:174)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:526)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass (EquinoxBundle.java:643)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension (RegistryStrategyOSGI.java:223)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension (ExtensionRegistry.java:987)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:275)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension (ConfigurationElementHandle.java:65)
    at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants$1.run (JavaModelManager.java:504)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants (JavaModelManager.java:497)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.initializeBuilder (JavaBuilder.java:649)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.clean (JavaBuilder.java:328)
    at org.eclipse.core.internal.events.BuildManager$2.run (BuildManager.java:1082)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:296)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:352)
    at org.eclipse.core.internal.events.BuildManager$1.run (BuildManager.java:441)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:444)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:403)
    at org.eclipse.core.internal.events.BuildManager.build (BuildManager.java:668)
    at org.eclipse.core.internal.resources.Project$1.run (Project.java:604)
    at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:2451)
    at org.eclipse.core.internal.resources.Project.internalBuild (Project.java:642)
    at org.eclipse.core.internal.resources.Project.build (Project.java:154)
    at org.eclipse.tycho.eclipsebuild.EclipseBuild.call (EclipseBuild.java:93)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.eclipse.tycho.osgi.framework.EclipseFramework.execute (EclipseFramework.java:141)
    at org.eclipse.tycho.eclipsebuild.EclipseBuildMojo.execute (EclipseBuildMojo.java:131)
    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:904)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:204)
    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:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: org.eclipse.swt.SWTException: Invalid thread access
    at org.eclipse.swt.SWT.error (SWT.java:4922)
    at org.eclipse.swt.SWT.error (SWT.java:4837)
    at org.eclipse.swt.SWT.error (SWT.java:4808)
    at org.eclipse.swt.widgets.Display.error (Display.java:1211)
    at org.eclipse.swt.widgets.Display.createDisplay (Display.java:962)
    at org.eclipse.swt.widgets.Display.create (Display.java:946)
    at org.eclipse.swt.graphics.Device.<init> (Device.java:132)
    at org.eclipse.swt.widgets.Display.<init> (Display.java:800)
    at org.eclipse.swt.widgets.Display.<init> (Display.java:791)
    at org.eclipse.swt.widgets.Display.getDefault (Display.java:1545)
    at org.eclipse.jface.preference.PreferenceConverter.<clinit> (PreferenceConverter.java:100)
    at org.eclipse.pde.internal.ui.editor.text.ColorManager.initializeDefaults (ColorManager.java:51)
    at org.eclipse.pde.internal.ui.preferences.PreferenceInitializer.initializeDefaultPreferences (PreferenceInitializer.java:28)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer (PreferenceServiceRegistryHelper.java:285)
    at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults (PreferenceServiceRegistryHelper.java:114)
    at org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults (PreferencesService.java:338)
    at org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults (DefaultPreferences.java:233)
    at org.eclipse.core.internal.preferences.DefaultPreferences.load (DefaultPreferences.java:288)
    at org.eclipse.core.internal.preferences.EclipsePreferences.create (EclipsePreferences.java:375)
    at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode (EclipsePreferences.java:630)
    at org.eclipse.core.internal.preferences.EclipsePreferences.node (EclipsePreferences.java:766)
    at org.eclipse.core.internal.preferences.AbstractScope.getNode (AbstractScope.java:38)
    at org.eclipse.pde.internal.core.PDEPreferencesManager.<init> (PDEPreferencesManager.java:38)
    at org.eclipse.pde.internal.ui.PDEPlugin.getPreferenceManager (PDEPlugin.java:76)
    at org.eclipse.pde.internal.ui.shared.target.TargetStatus.initializeTargetStatus (TargetStatus.java:191)
    at org.eclipse.pde.internal.ui.PDEPlugin.start (PDEPlugin.java:216)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run (BundleContextImpl.java:833)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run (BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged (AccessController.java:571)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator (BundleContextImpl.java:825)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start (BundleContextImpl.java:775)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0 (EquinoxBundle.java:1057)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker (EquinoxBundle.java:387)
    at org.eclipse.osgi.container.Module.doStart (Module.java:639)
    at org.eclipse.osgi.container.Module.start (Module.java:498)
    at org.eclipse.osgi.framework.util.SecureAction.start (SecureAction.java:528)
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass (EclipseLazyStarter.java:122)
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass (ClasspathManager.java:620)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass (ModuleClassLoader.java:348)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:414)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass0 (BundleLoader.java:520)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:434)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass (ModuleClassLoader.java:174)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:526)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass (EquinoxBundle.java:643)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension (RegistryStrategyOSGI.java:223)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension (ExtensionRegistry.java:987)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:275)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension (ConfigurationElementHandle.java:65)
    at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants$1.run (JavaModelManager.java:504)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants (JavaModelManager.java:497)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.initializeBuilder (JavaBuilder.java:649)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.clean (JavaBuilder.java:328)
    at org.eclipse.core.internal.events.BuildManager$2.run (BuildManager.java:1082)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:296)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:352)
    at org.eclipse.core.internal.events.BuildManager$1.run (BuildManager.java:441)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:444)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:403)
    at org.eclipse.core.internal.events.BuildManager.build (BuildManager.java:668)
    at org.eclipse.core.internal.resources.Project$1.run (Project.java:604)
    at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:2451)
    at org.eclipse.core.internal.resources.Project.internalBuild (Project.java:642)
    at org.eclipse.core.internal.resources.Project.build (Project.java:154)
    at org.eclipse.tycho.eclipsebuild.EclipseBuild.call (EclipseBuild.java:93)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.eclipse.tycho.osgi.framework.EclipseFramework.execute (EclipseFramework.java:141)
    at org.eclipse.tycho.eclipsebuild.EclipseBuildMojo.execute (EclipseBuildMojo.java:131)
    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:904)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:204)
    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:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Error:  Problems occurred when invoking code from plug-in: "org.eclipse.equinox.preferences".
java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jface.preference.PreferenceConverter
    at org.eclipse.jdt.ui.PreferenceConstants.initializeDefaultValues (PreferenceConstants.java:4114)
    at org.eclipse.jdt.internal.ui.JavaUIPreferenceInitializer.initializeDefaultPreferences (JavaUIPreferenceInitializer.java:38)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer (PreferenceServiceRegistryHelper.java:285)
    at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults (PreferenceServiceRegistryHelper.java:114)
    at org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults (PreferencesService.java:338)
    at org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults (DefaultPreferences.java:233)
    at org.eclipse.core.internal.preferences.DefaultPreferences.load (DefaultPreferences.java:288)
    at org.eclipse.core.internal.preferences.EclipsePreferences.create (EclipsePreferences.java:375)
    at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode (EclipsePreferences.java:630)
    at org.eclipse.core.internal.preferences.EclipsePreferences.node (EclipsePreferences.java:766)
    at org.eclipse.core.internal.preferences.AbstractScope.getNode (AbstractScope.java:38)
    at org.eclipse.jdt.internal.core.manipulation.MembersOrderPreferenceCacheCommon.install (MembersOrderPreferenceCacheCommon.java:110)
    at org.eclipse.jdt.internal.ui.preferences.MembersOrderPreferenceCache.install (MembersOrderPreferenceCache.java:36)
    at org.eclipse.jdt.internal.ui.JavaPlugin.start (JavaPlugin.java:395)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run (BundleContextImpl.java:833)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run (BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged (AccessController.java:571)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator (BundleContextImpl.java:825)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start (BundleContextImpl.java:775)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0 (EquinoxBundle.java:1057)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker (EquinoxBundle.java:387)
    at org.eclipse.osgi.container.Module.doStart (Module.java:639)
    at org.eclipse.osgi.container.Module.start (Module.java:498)
    at org.eclipse.osgi.framework.util.SecureAction.start (SecureAction.java:528)
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass (EclipseLazyStarter.java:122)
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass (ClasspathManager.java:620)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass (ModuleClassLoader.java:348)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:414)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass0 (BundleLoader.java:520)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:434)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass (ModuleClassLoader.java:174)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:526)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass (EquinoxBundle.java:643)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension (RegistryStrategyOSGI.java:223)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension (ExtensionRegistry.java:987)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:275)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension (ConfigurationElementHandle.java:65)
    at org.eclipse.core.internal.filebuffers.ExtensionsRegistry.getExtension (ExtensionsRegistry.java:226)
    at org.eclipse.core.internal.filebuffers.ExtensionsRegistry.doGetDocumentSetupParticipants (ExtensionsRegistry.java:354)
    at org.eclipse.core.internal.filebuffers.ExtensionsRegistry.getDocumentSetupParticipants (ExtensionsRegistry.java:376)
    at org.eclipse.core.internal.filebuffers.ResourceExtensionRegistry.getDocumentSetupParticipants (ResourceExtensionRegistry.java:124)
    at org.eclipse.core.internal.filebuffers.ResourceTextFileBufferManager.createEmptyDocument (ResourceTextFileBufferManager.java:142)
    at org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer.initializeFileBufferContent (ResourceTextFileBuffer.java:235)
    at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.create (ResourceFileBuffer.java:247)
    at org.eclipse.core.internal.filebuffers.TextFileBufferManager.connect (TextFileBufferManager.java:116)
    at org.eclipse.pde.internal.ui.util.PDEModelUtility.generateModelEdits (PDEModelUtility.java:327)
    at org.eclipse.pde.internal.ui.util.PDEModelUtility.modifyModel (PDEModelUtility.java:291)
    at org.eclipse.pde.ds.internal.annotations.DSAnnotationCompilationParticipant.updateProject (DSAnnotationCompilationParticipant.java:457)
    at org.eclipse.pde.ds.internal.annotations.DSAnnotationCompilationParticipant.buildFinished (DSAnnotationCompilationParticipant.java:401)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.build (JavaBuilder.java:262)
    at org.eclipse.core.internal.events.BuildManager$2.run (BuildManager.java:1077)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:296)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:352)
    at org.eclipse.core.internal.events.BuildManager$1.run (BuildManager.java:441)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:444)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:403)
    at org.eclipse.core.internal.events.BuildManager.build (BuildManager.java:668)
    at org.eclipse.core.internal.resources.Project$1.run (Project.java:604)
    at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:2451)
    at org.eclipse.core.internal.resources.Project.internalBuild (Project.java:642)
    at org.eclipse.core.internal.resources.Project.build (Project.java:154)
    at org.eclipse.tycho.eclipsebuild.EclipseBuild.call (EclipseBuild.java:94)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.eclipse.tycho.osgi.framework.EclipseFramework.execute (EclipseFramework.java:141)
    at org.eclipse.tycho.eclipsebuild.EclipseBuildMojo.execute (EclipseBuildMojo.java:131)
    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:904)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:204)
    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:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: java.lang.ExceptionInInitializerError: Exception org.eclipse.swt.SWTException: Invalid thread access [in thread "main"]
    at org.eclipse.swt.SWT.error (SWT.java:4922)
    at org.eclipse.swt.SWT.error (SWT.java:4837)
    at org.eclipse.swt.SWT.error (SWT.java:4808)
    at org.eclipse.swt.widgets.Display.error (Display.java:1211)
    at org.eclipse.swt.widgets.Display.createDisplay (Display.java:962)
    at org.eclipse.swt.widgets.Display.create (Display.java:946)
    at org.eclipse.swt.graphics.Device.<init> (Device.java:132)
    at org.eclipse.swt.widgets.Display.<init> (Display.java:800)
    at org.eclipse.swt.widgets.Display.<init> (Display.java:791)
    at org.eclipse.swt.widgets.Display.getDefault (Display.java:1545)
    at org.eclipse.jface.preference.PreferenceConverter.<clinit> (PreferenceConverter.java:100)
    at org.eclipse.pde.internal.ui.editor.text.ColorManager.initializeDefaults (ColorManager.java:51)
    at org.eclipse.pde.internal.ui.preferences.PreferenceInitializer.initializeDefaultPreferences (PreferenceInitializer.java:28)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer (PreferenceServiceRegistryHelper.java:285)
    at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults (PreferenceServiceRegistryHelper.java:114)
    at org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults (PreferencesService.java:338)
    at org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults (DefaultPreferences.java:233)
    at org.eclipse.core.internal.preferences.DefaultPreferences.load (DefaultPreferences.java:288)
    at org.eclipse.core.internal.preferences.EclipsePreferences.create (EclipsePreferences.java:375)
    at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode (EclipsePreferences.java:630)
    at org.eclipse.core.internal.preferences.EclipsePreferences.node (EclipsePreferences.java:766)
    at org.eclipse.core.internal.preferences.AbstractScope.getNode (AbstractScope.java:38)
    at org.eclipse.pde.internal.core.PDEPreferencesManager.<init> (PDEPreferencesManager.java:38)
    at org.eclipse.pde.internal.ui.PDEPlugin.getPreferenceManager (PDEPlugin.java:76)
    at org.eclipse.pde.internal.ui.shared.target.TargetStatus.initializeTargetStatus (TargetStatus.java:191)
    at org.eclipse.pde.internal.ui.PDEPlugin.start (PDEPlugin.java:216)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run (BundleContextImpl.java:833)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run (BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged (AccessController.java:571)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator (BundleContextImpl.java:825)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start (BundleContextImpl.java:775)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0 (EquinoxBundle.java:1057)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker (EquinoxBundle.java:387)
    at org.eclipse.osgi.container.Module.doStart (Module.java:639)
    at org.eclipse.osgi.container.Module.start (Module.java:498)
    at org.eclipse.osgi.framework.util.SecureAction.start (SecureAction.java:528)
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass (EclipseLazyStarter.java:122)
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass (ClasspathManager.java:620)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass (ModuleClassLoader.java:348)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:414)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass0 (BundleLoader.java:520)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:434)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass (ModuleClassLoader.java:174)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:526)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass (EquinoxBundle.java:643)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension (RegistryStrategyOSGI.java:223)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension (ExtensionRegistry.java:987)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension (ConfigurationElement.java:275)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension (ConfigurationElementHandle.java:65)
    at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants$1.run (JavaModelManager.java:504)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.jdt.internal.core.JavaModelManager$CompilationParticipants.getCompilationParticipants (JavaModelManager.java:497)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.initializeBuilder (JavaBuilder.java:649)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.clean (JavaBuilder.java:328)
    at org.eclipse.core.internal.events.BuildManager$2.run (BuildManager.java:1082)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:296)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:352)
    at org.eclipse.core.internal.events.BuildManager$1.run (BuildManager.java:441)
    at org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:47)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:444)
    at org.eclipse.core.internal.events.BuildManager.basicBuild (BuildManager.java:403)
    at org.eclipse.core.internal.events.BuildManager.build (BuildManager.java:668)
    at org.eclipse.core.internal.resources.Project$1.run (Project.java:604)
    at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:2451)
    at org.eclipse.core.internal.resources.Project.internalBuild (Project.java:642)
    at org.eclipse.core.internal.resources.Project.build (Project.java:154)
    at org.eclipse.tycho.eclipsebuild.EclipseBuild.call (EclipseBuild.java:93)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.eclipse.tycho.osgi.framework.EclipseFramework.execute (EclipseFramework.java:141)
    at org.eclipse.tycho.eclipsebuild.EclipseBuildMojo.execute (EclipseBuildMojo.java:131)
    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:904)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:204)
    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:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Mac (second one)
Error:  Failed to execute goal org.eclipse.tycho:tycho-apitools-plugin:4.0.8:verify (verify) on project org.eclipse.pde.unittest.junit: Execute ApiApplication failed: InvocationTargetException: Component 'Plug-in Development Unit Test support' in the baseline 'workspace' is disposed [main]: Component was disposed here [Worker-2: Updating plug-in dependencies] -> [Help 1]
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.unittest.junit: 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:904)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:204)
    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:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
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:904)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:204)
    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:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:118)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.eclipse.tycho.osgi.framework.EclipseFramework.execute (EclipseFramework.java:141)
    at org.eclipse.tycho.apitools.ApiAnalysisMojo.performAnalysis (ApiAnalysisMojo.java:308)
    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:904)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:204)
    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:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: org.eclipse.core.runtime.CoreException: Component 'Plug-in Development Unit Test support' in the baseline 'workspace' is disposed [main]
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.baselineDisposed (BundleComponent.java:1202)
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.getBundleDescription (BundleComponent.java:946)
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.getErrors (BundleComponent.java:1187)
    at org.eclipse.tycho.apitools.ApiAnalysis.call (ApiAnalysis.java:163)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.eclipse.tycho.osgi.framework.EclipseFramework.execute (EclipseFramework.java:141)
    at org.eclipse.tycho.apitools.ApiAnalysisMojo.performAnalysis (ApiAnalysisMojo.java:308)
    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:904)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:204)
    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:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: java.lang.RuntimeException: Component was disposed here [Worker-2: Updating plug-in dependencies]
    at org.eclipse.pde.api.tools.internal.model.BundleComponent.dispose (BundleComponent.java:201)
    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:817)
    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:640)
    at org.eclipse.pde.api.tools.internal.ApiBaselineManager.disposeWorkspaceBaseline (ApiBaselineManager.java:663)
    at org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.processJavaElementDeltas (WorkspaceDeltaProcessor.java:81)
    at org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.elementChanged (WorkspaceDeltaProcessor.java:52)
    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:459)
    at org.eclipse.core.internal.resources.Workspace.endOperation (Workspace.java:1587)
    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:809)
    at org.eclipse.jdt.core.JavaCore.setClasspathContainer (JavaCore.java:6267)
    at org.eclipse.pde.internal.core.PluginModelManager$UpdateClasspathsJob.run (PluginModelManager.java:105)
    at org.eclipse.core.internal.jobs.Worker.run (Worker.java:63)

@HannesWell any ideas?

@fedejeanne fedejeanne requested a review from iloveeclipse July 31, 2024 11:14
@HannesWell
Copy link
Member

Linux is #1360, but I think I found a fix. But I have no idea for Mac, maybe a hick-up?

@HannesWell HannesWell force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from 9b4712f to 82d234f Compare July 31, 2024 19:04
@fedejeanne
Copy link
Contributor Author

fedejeanne commented Aug 1, 2024

Linux is #1360, but I think I found a fix. But I have no idea for Mac, maybe a hick-up?

Thank you for looking into it. Linux might have been a hick-up since all checks are passing now.

EDIT: or maybe your changes in effe41d did the trick for Linux :-)

@fedejeanne fedejeanne force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from 82d234f to 69cc890 Compare September 5, 2024 11:32
If this method (or part of it) is run before the tab has been activated
then the default configuration passed as parameter will be modified and
incorrect values will be introduced.

Remove attributes in PDE launch configurations instead of explicitly
setting them to their default values

The attributes in  question are:
- DESELECTED_WORKSPACE_BUNDLES --> []
- USE_CUSTOM_FEATURES --> false
- SHOW_SELECTED_ONLY --> false
- INCLUDE_OPTIONAL --> true
- AUTOMATIC_ADD --> true

The reason to do this is that 2 launch configurations are considered
different if one of them explicitly sets an attribute to its default
value (because it then has 1 more attribute)

This commit fixes a regression introduced in
98a5865

Fixes eclipse-pde#1250
@fedejeanne fedejeanne force-pushed the bugs/1250_default_config_in_PluginsTab_is_wrong branch from 69cc890 to 1cdde48 Compare September 11, 2024 11:54
@fedejeanne
Copy link
Contributor Author

@HannesWell any chance of getting this one merged for M1? :-)

@HannesWell
Copy link
Member

@HannesWell any chance of getting this one merged for M1? :-)

I'll try to have a look at it but I'm currently focusing on the topics I want to present at EclipseCon/OCX, so I can't make any promises. But it's not forgotten. :)

@fedejeanne
Copy link
Contributor Author

@HannesWell FTR the conflict in this PR is probably the file org.eclipse.pde.doc.user/forceQualifierUpdate.txt (it's a one-liner problem) so feel free to review even if it's marked as having conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Run Configurations Dialog: Improve Performance of PDE Tabs
4 participants