Community
Participate
Working Groups
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.
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.
Please verify DarinW.
Verified.
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
I am going to back out the change to revisit post M4
Commented out the declaration of the contributed property in the ant ui plugin.xml
*** Bug 81827 has been marked as a duplicate of this bug. ***
Never came up with a good solution...deferring post 3.1 as the feature window has closed.
As of now 'LATER' and 'REMIND' resolutions are no longer supported. Please reopen this bug if it is still valid for you.