Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 78752 - ${eclipse.target} property for building target plugins
Summary: ${eclipse.target} property for building target plugins
Status: RESOLVED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Ant (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Platform-Ant-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 81827 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-11-16 12:38 EST by Darin Swanson CLA
Modified: 2009-08-30 02:32 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Darin Swanson CLA 2004-11-16 12:38:22 EST
Request for a contributed property that resolves to the PDE target platform.

eclipse.home and eclipse.target are not necesarily the same (as per the PDE 
preference setting).

Most likely this will need to come from PDE land.
Comment 1 Darin Swanson CLA 2004-11-30 19:30:39 EST
Added in the Ant UI plugin.xml and the AntPropertyValueProvider.
Defined for builds in the same JRE as Eclipse (same as eclipse.home).
 If we change eclipse.home to be availabe in separate likely this property 
should be as well. See bug 78298.
Comment 2 Darin Swanson CLA 2004-11-30 19:30:51 EST
Please verify DarinW.
Comment 3 Darin Wright CLA 2004-12-06 12:22:04 EST
Verified.
Comment 4 Darin Swanson CLA 2004-12-06 22:57:09 EST
We have introduced the possibility of deadlock with this enhancement.

If the first reconcile of the Ant model happens to trigger the initialization 
of JDT Core we end up in a synch exec that occurs from the 
WorkbenchActionBuilder on the subsequent property changes. 

Meanwhile the UI thread is blocked on the AntFoldingStructureProvider waiting 
for the AntModel lock object owned by the first reconcile above --> DEADLOCK

Thread [main] (Suspended)
	AntModel.getProjectNode(boolean) line: 1219
	AntModel.getProjectNode() line: 1229
	AntFoldingStructureProvider.updateFoldingRegions(AntModel) line: 89
	AntEditor.projectionEnabled() line: 1016
	AntEditor$StatusLineSourceViewer
(ProjectionViewer).fireProjectionEnabled() line: 473
	AntEditor$StatusLineSourceViewer(ProjectionViewer).enableProjection() 
line: 521
	AntEditor$StatusLineSourceViewer(ProjectionViewer).doOperation(int) 
line: 1325
	AntEditor$StatusLineSourceViewer.doOperation(int) line: 278
	AntEditor.createPartControl(Composite) line: 787
	PartPane$2.run() line: 148
	InternalPlatform.run(ISafeRunnable) line: 616
	Platform.run(ISafeRunnable) line: 747
	EditorPane(PartPane).doCreateChildControl() line: 144
	EditorPane(PartPane).createChildControl() line: 349
	EditorManager$9.run() line: 1110
	InternalPlatform.run(ISafeRunnable) line: 616
	Platform.run(ISafeRunnable) line: 747
	EditorManager.busyRestoreEditor(EditorManager$Editor) line: 1066
	EditorManager$8.run() line: 1058
	BusyIndicator.showWhile(Display, Runnable) line: 69
	EditorManager.restoreEditor(EditorManager$Editor) line: 1056
	EditorManager$Editor.getEditor(boolean) line: 1474
	EditorManager$Editor.getPart(boolean) line: 1465
	EditorPane(PartPane).setVisible(boolean) line: 329
	PresentablePart.setVisible(boolean) line: 123
	PresentablePartFolder.select(IPresentablePart) line: 266
	LeftToRightTabOrder.select(IPresentablePart) line: 65
	TabbedStackPresentation.selectPart(IPresentablePart) line: 381
	EditorStack(PartStack).refreshPresentationSelection() line: 1034
	EditorStack(PartStack).setSelection(LayoutPart) line: 1008
	EditorStack(PartStack).showPart(LayoutPart, Object) line: 1183
	EditorStack(PartStack).add(LayoutPart) line: 383
	EditorStack.add(LayoutPart) line: 109
	EditorSashContainer.addEditor(EditorPane) line: 63
	EditorAreaHelper.openEditor(IEditorReference, boolean) line: 281
	EditorManager$4.run() line: 787
	BusyIndicator.showWhile(Display, Runnable) line: 69
	EditorManager.createEditorTab(IEditorReference, EditorDescriptor, 
IEditorInput, boolean) line: 773
	EditorManager.restoreEditorState(IMemento, ArrayList, IEditorPart[], 
ArrayList, MultiStatus) line: 1735
	EditorManager.restoreState(IMemento) line: 1010
	WorkbenchPage.restoreState(IMemento, IPerspectiveDescriptor) line: 2509
	WorkbenchWindow.restoreState(IMemento, IPerspectiveDescriptor) line: 
1606
	Workbench.restoreState(IMemento) line: 1426
	Workbench.access$10(Workbench, IMemento) line: 1382
	Workbench$13.run() line: 1285
	InternalPlatform.run(ISafeRunnable) line: 616
	Platform.run(ISafeRunnable) line: 747
	Workbench.restoreState() line: 1219
	WorkbenchConfigurer.restoreState() line: 171
	IDEWorkbenchAdvisor(WorkbenchAdvisor).openWindows() line: 655
	Workbench.init(Display) line: 881
	Workbench.runUI() line: 1527
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 282
	PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 144
	IDEApplication.run(Object) line: 102
	PlatformActivator$1.run(Object) line: 220
	EclipseStarter.run(Object) line: 273
	EclipseStarter.run(String[], Runnable) line: 129
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not 
available [native method]
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
	Method.invoke(Object, Object[]) line: 324
	Main.basicRun(String[]) line: 185
	Main.run(String[]) line: 710
	Main.main(String[]) line: 694

Thread [org.eclipse.ant.internal.ui.editor.text.NotifyingReconciler] 
(Suspended)
	Object.wait(long) line: not available [native method]
	RunnableLock(Object).wait() line: 429
	UISynchronizer(Synchronizer).syncExec(Runnable) line: 164
	UISynchronizer.syncExec(Runnable) line: 28
	Display.syncExec(Runnable) line: 3128
	WorkbenchActionBuilder$3.propertyChange
(Preferences$PropertyChangeEvent) line: 288
	Preferences$1.run() line: 492
	InternalPlatform.run(ISafeRunnable) line: 616
	Platform.run(ISafeRunnable) line: 747
	PreferenceForwarder(Preferences).firePropertyChangeEvent(String, 
Object, Object) line: 495
	PreferenceForwarder.setValue(String, boolean) line: 210
	WorkspacePreferences.setAutoBuilding(boolean) line: 81
	WorkspacePreferences.copyFromTo(WorkspaceDescription, 
WorkspaceDescription) line: 168
	WorkspacePreferences.copyFrom(WorkspaceDescription) line: 180
	Workspace.setDescription(IWorkspaceDescription) line: 1740
	JavaClasspathVariablesInitializer.setAutobuild(IWorkspace, boolean) 
line: 103
	JavaClasspathVariablesInitializer.initialize(String) line: 78
	JavaCore.getClasspathVariable(String) line: 1363
	JavaCore.getResolvedVariablePath(IPath) line: 2461
	JavaCore.getResolvedClasspathEntry(IClasspathEntry) line: 2371
	JavaProject.getResolvedClasspath(IClasspathEntry[], IPath, boolean, 
boolean, Map) line: 2013
	JavaProject.getResolvedClasspath(boolean, boolean, boolean) line: 1946
	DeltaProcessingState.initializeRoots() line: 260
	BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 698
	Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, 
IProgressMonitor) line: 1676
	JavaCore.run(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) 
line: 3672
	JavaCore.setClasspathContainer(IPath, IJavaProject[], 
IClasspathContainer[], IProgressMonitor) line: 3842
	JREContainerInitializer.initialize(IPath, IJavaProject) line: 51
	JavaModelManager.initializeContainer(IJavaProject, IPath) line: 1274
	JavaModelManager.initializeAllContainers(IJavaProject, IPath) line: 
1239
	JavaModelManager.getClasspathContainer(IPath, IJavaProject) line: 846
	JavaCore.getClasspathContainer(IPath, IJavaProject) line: 1257
	JavaProject.getResolvedClasspath(IClasspathEntry[], IPath, boolean, 
boolean, Map) line: 2033
	JavaProject.getResolvedClasspath(boolean, boolean, boolean) line: 1946
	JavaModelManager.updateVariableValues(String[], IPath[], 
IProgressMonitor) line: 2010
	JavaCore.setClasspathVariables(String[], IPath[], IProgressMonitor) 
line: 3977
	JavaCore.setClasspathVariable(String, IPath, IProgressMonitor) line: 
3942
	EclipseHomeInitializer.resetEclipseHomeVariable() line: 31
	EclipseHomeInitializer.initialize(String) line: 24
	JavaCore.getClasspathVariable(String) line: 1363
	AntPropertyValueProvider.getAntPropertyValue(String) line: 41
	Property.getValue(boolean) line: 111
	AntModel.setGlobalProperties(Project) line: 419
	AntModel.setProperties(Project) line: 352
	AntModel.initializeProject(Project, ClassLoader) line: 318
	AntModel.prepareForFullParse(Project, ClassLoader) line: 292
	AntModel.parseDocument(IDocument) line: 267
	AntModel.reconcile() line: 232
	XMLReconcilingStrategy.internalReconcile() line: 47
	XMLReconcilingStrategy.initialReconcile() line: 96
	NotifyingReconciler(MonoReconciler).initialProcess() line: 103
	NotifyingReconciler.initialProcess() line: 61
	AbstractReconciler$BackgroundThread.run() line: 170
Comment 5 Darin Swanson CLA 2004-12-06 22:57:42 EST
I am going to back out the change to revisit post M4
Comment 6 Darin Swanson CLA 2004-12-06 22:59:08 EST
Commented out the declaration of the contributed property in the ant ui 
plugin.xml
Comment 7 Darin Swanson CLA 2004-12-23 14:40:05 EST
*** Bug 81827 has been marked as a duplicate of this bug. ***
Comment 8 Darin Swanson CLA 2005-03-24 23:26:44 EST
Never came up with a good solution...deferring post 3.1 as the feature window
has closed.
Comment 9 Eclipse Webmaster CLA 2009-08-30 02:32:49 EDT
As of now 'LATER' and 'REMIND' resolutions are no longer supported.
Please reopen this bug if it is still valid for you.