Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 164165

Summary: Exception logged on deploy flag change in JSF library
Product: [WebTools] Java Server Faces Reporter: Cameron Bateman <cameron.bateman>
Component: CoreAssignee: Gerry Kessler <gerry.kessler>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 2.0   
Target Milestone: 2.0 M6   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Bug Depends on: 142056    
Bug Blocks:    

Description Cameron Bateman CLA 2006-11-10 14:47:46 EST
Identified in smoke test for I200611090031. To reproduce:

1) Create a dynamic web project with JSF facet and some default runtime impl.

2) Create a component library and add it to the project (note deploy set to true).

3) Hit Ok.  Then reopen dialog for the project and mark deploy to false for that library.

Note that Build Automatically should be ON.  Problem does not always reliably reproduce.  

Stack trace:

org.eclipse.wst.common.frameworks.internal.enablement.nonui.WFTWrappedException
Java Model Exception: Java Model Status [Build path contains duplicate entry: 'C:cam/tomahawk/tomahawk-1.1.3/lib/tomahawk-1.1.3.jar' for project NoFacetOnCreate]
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:775)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2779)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2810)
at org.eclipse.jst.j2ee.internal.common.operations.UpdateJavaBuildPathOperation.run(UpdateJavaBuildPathOperation.java:232)
at org.eclipse.wst.common.frameworks.internal.ui.RunnableWithProgressWrapper.run(RunnableWithProgressWrapper.java:67)
at org.eclipse.jst.jsf.core.internal.jsflibraryconfig.J2EEModuleDependencyDelegate.updateProjectDependency(J2EEModuleDependencyDelegate.java:196)
at org.eclipse.jst.jsf.core.internal.jsflibraryconfig.J2EEModuleDependencyDelegate.addProjectDependency(J2EEModuleDependencyDelegate.java:135)
at org.eclipse.jst.jsf.core.internal.jsflibraryconfig.J2EEModuleDependencyDelegate.updateProjectDependencies(J2EEModuleDependencyDelegate.java:115)
at org.eclipse.jst.jsf.ui.internal.jsflibraryconfig.JSFLibraryPropertyPage.performOk(JSFLibraryPropertyPage.java:69)
at org.eclipse.jface.preference.PreferenceDialog$11.run(PreferenceDialog.java:889)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:850)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
at org.eclipse.jface.preference.PreferenceDialog.okPressed(PreferenceDialog.java:869)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.okPressed(FilteredPreferenceDialog.java:377)
at org.eclipse.jface.preference.PreferenceDialog.buttonPressed(PreferenceDialog.java:230)
at org.eclipse.jface.dialogs.Dialog$3.widgetSelected(Dialog.java:638)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:925)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3463)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3077)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:156)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:925)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3463)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3077)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1924)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1888)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:348)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:341)
at org.eclipse.core.launcher.Main.basicRun(Main.java:285)
at org.eclipse.core.launcher.Main.run(Main.java:987)
at org.eclipse.core.launcher.Main.main(Main.java:962)
Root exception:
Java Model Exception: Java Model Status [Build path contains duplicate entry: 'C:cam/tomahawk/tomahawk-1.1.3/lib/tomahawk-1.1.3.jar' for project NoFacetOnCreate]
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:775)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2779)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2810)
at org.eclipse.jst.j2ee.internal.common.operations.UpdateJavaBuildPathOperation.run(UpdateJavaBuildPathOperation.java:232)
at org.eclipse.wst.common.frameworks.internal.ui.RunnableWithProgressWrapper.run(RunnableWithProgressWrapper.java:67)
at org.eclipse.jst.jsf.core.internal.jsflibraryconfig.J2EEModuleDependencyDelegate.updateProjectDependency(J2EEModuleDependencyDelegate.java:196)
at org.eclipse.jst.jsf.core.internal.jsflibraryconfig.J2EEModuleDependencyDelegate.addProjectDependency(J2EEModuleDependencyDelegate.java:135)
at org.eclipse.jst.jsf.core.internal.jsflibraryconfig.J2EEModuleDependencyDelegate.updateProjectDependencies(J2EEModuleDependencyDelegate.java:115)
at org.eclipse.jst.jsf.ui.internal.jsflibraryconfig.JSFLibraryPropertyPage.performOk(JSFLibraryPropertyPage.java:69)
at org.eclipse.jface.preference.PreferenceDialog$11.run(PreferenceDialog.java:889)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:850)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
at org.eclipse.jface.preference.PreferenceDialog.okPressed(PreferenceDialog.java:869)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.okPressed(FilteredPreferenceDialog.java:377)
at org.eclipse.jface.preference.PreferenceDialog.buttonPressed(PreferenceDialog.java:230)
at org.eclipse.jface.dialogs.Dialog$3.widgetSelected(Dialog.java:638)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:925)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3463)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3077)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:156)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:925)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3463)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3077)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1924)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1888)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:348)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:341)
at org.eclipse.core.launcher.Main.basicRun(Main.java:285)
at org.eclipse.core.launcher.Main.run(Main.java:987)
at org.eclipse.core.launcher.Main.main(Main.java:962)
Comment 1 Cameron Bateman CLA 2006-11-17 20:35:33 EST
It appears that this error is caused indirectly by a ConcurrentModificationException in WorkbenchComponent caused by J2EEModuleDependencyDelegate creating a race condition between SetReferenceJob and itself.
Comment 2 Raghunathan Srinivasan CLA 2007-01-05 20:19:08 EST
Triaged for WP 2.0.
Comment 3 Gerry Kessler CLA 2007-04-02 13:15:49 EDT
fixed by virtue of 142056 being fixed.   M6 build.
Comment 4 Cameron Bateman CLA 2007-05-17 18:11:58 EDT
Code causing the race condition appears no longer to exist due to change to classpath container-based JSF Library.  Verified in RC0.
Comment 5 John Lanuti CLA 2007-06-06 10:13:23 EDT
Closing as verified.