Community
Participate
Working Groups
I20040121 I have released new API that allows clients to ask for the scheduling rule for various operations (copy, move, delete, validateEdit, setContents, etc). Many of these rule requirements actually vary based on the repository provider (for example CVS needs to lock the parent folder for most operations). Core needs to expose something in the TeamHook to allow repository providers to provide a rule factory.
See bug 46753 for more detailed discussion.
Increasing priority. This must happen for 3.0 or all non-CVS team providers will be stuck with the hard-coded rules we are specifying for validateEdit, etc.
I suspect bug 57668 occurred because a 2.1 provider (ClearCase) obtained the workspace lock in the vaidate Edit callback. It's unfortunate but I think we need to make the default rule for validate edit the workspace to ensure that 2.1 pessimistic providers still work in 3.0. We would also need to make sure that 3.0 providers override the rule with a rule of lower granularity.
I agree that workspace root will have to be the default rule when a non-3.0 provider is installed on a project. I am worried now that people upstream may be making hard-coded assumptions about what locks are acquired in core methods. I need to get this done soon so we can iron out the bugs.
I add some information and logs about my problem (basically the same as 57668) Hope this will be solved or I must choose between Eclipse 3.0 and Clearcase. 3.0M8 with IBM Rational Clearcase plugin 2.2.1.35 1. Problem: I enable the 2.1 build behaviour. I perform a rebuild project. An external builder is attached. The build configuration is from a old version (M7). Eclipse tries to upate it to the new format. It can not be checked out because autocheckout is disabled. (this is because eclipse checked automaticaly out to often and by accident-> switch off autocheckout). I get a dialog: "Errors Running Jobs: ERROR: Rebuild Project: Problems occurred building the selected resources." I reason was only visable in the log. However without a filename. I know that it is .externalToolBuilders/buildEclipse.launch and check it out manualy. Now rebuild projects works. In the launcher there are two new attributes: " <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/> <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org. eclipse.ant.ui.AntClasspathProvider"/> " I check in this again and rebuild project is still possible. New attributes are compatible with M7! Eclipse should give a dialog with the reasone that a checkout can not be performed (as in the log). Furthermore a file for which the automatich checkout failed should be stated. However the very best would be if the Rational Plugin can be configured to prompt for checkout in such cases. This was not possible for "When checked in files are edited by an internal, non-interactive editor" "When checked in files are saved by an internal editor". There is only "Do nothing" and "Automatically checkkout" possible. The above is already a problem with M7 (and 2.1 too) 2. Problem: I set "When checked in files are edited by an internal, interactive editor" to "Prompt to checkout". In M7 this lead to the following behaviour: If I hit a space in an editor I get a prompt from the clearcase plugin if I want to checkout. With M8 I get an error: "Exception running validator code" This message replace the content of the editor. If I try to open the editor again I get still the error message. I must close the editor and reopen the file again or I must check out the file manually. I try to set all settings of the plugin to "Automatically checkout". I get the same result. I use Rational ClearCase SCM Adapcter Version 2.2.36 Build 20020612 also refered as 2.2.1.35. Is there a newer one I can get or should I try to push my department towards CVS. The license costs for ClearCase, ClearQuest, Rose and Purify plus are not so low that I want always grudging toward the CVS users. Hope this helps and the text is not too long Robert Risch ******************** checkout problem with externalToolBuilders launcher update *************************** !SESSION Apr 08, 2004 10:32:03.160 --------------------------------------------- java.version=1.4.2 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE !ENTRY com.rational.clearcase 4 0 Apr 08, 2004 10:32:03.160 !MESSAGE CCFileModificationValidator::validateEdit: File could not be checked out(not enabled)[4-Error(4-NotOkToEdit/Save)] !ENTRY org.eclipse.core.runtime 4 2 Apr 08, 2004 10:32:03.160 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core. runtime". !STACK 1 org.eclipse.core.runtime.CoreException: File could not be checked out(not enabled) at org.eclipse.debug.internal.core.LaunchConfigurationWorkingCopy. writeNewFile(LaunchConfigurationWorkingCopy.java:311) at org.eclipse.debug.internal.core.LaunchConfigurationWorkingCopy. doSave0(LaunchConfigurationWorkingCopy.java:220) at org.eclipse.debug.internal.core.LaunchConfigurationWorkingCopy. access$0(LaunchConfigurationWorkingCopy.java:211) at org.eclipse.debug.internal.core.LaunchConfigurationWorkingCopy$1. run(LaunchConfigurationWorkingCopy.java:166) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1559) at org.eclipse.debug.internal.core.LaunchConfigurationWorkingCopy. doSave(LaunchConfigurationWorkingCopy.java:170) at org.eclipse.ant.internal.ui.model.AntUtil. migrateToNewClasspathFormat(AntUtil.java:496) at org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate. launch(AntLaunchDelegate.java:78) at org.eclipse.debug.internal.core.LaunchConfiguration. launch(LaunchConfiguration.java:569) at org.eclipse.debug.internal.core.LaunchConfiguration. launch(LaunchConfiguration.java:150) at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder. launchBuild(ExternalToolBuilder.java:137) at org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder. build(ExternalToolBuilder.java:70) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java: 504) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform. java:610) at org.eclipse.core.runtime.Platform.run(Platform.java:521) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager. java:137) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager. java:224) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager. java:165) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java: 194) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform. java:610) at org.eclipse.core.runtime.Platform.run(Platform.java:521) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager. java:197) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java: 296) at org.eclipse.core.internal.resources.Project.build(Project.java:98) at org.eclipse.ui.actions.BuildAction.invokeOperation(BuildAction.java:169) at org.eclipse.ui.actions.WorkspaceAction.execute(WorkspaceAction.java:119) at org.eclipse.ui.actions.WorkspaceAction$2.run(WorkspaceAction.java:362) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62) !SUBENTRY 1 com.rational.clearcase 4 4 Apr 08, 2004 10:32:03.160 !MESSAGE File could not be checked out(not enabled) !SUBENTRY 1 com.rational.clearcase 4 4 Apr 08, 2004 10:32:03.160 !MESSAGE File could not be checked out(not enabled) !ENTRY org.eclipse.ui.ide 4 4 Apr 08, 2004 10:32:17.269 !MESSAGE Problems occurred building the selected resources. !STACK 1 org.eclipse.core.internal.resources.ResourceException: Errors during build. at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java: 298) at org.eclipse.core.internal.resources.Project.build(Project.java:98) at org.eclipse.ui.actions.BuildAction.invokeOperation(BuildAction.java:169) at org.eclipse.ui.actions.WorkspaceAction.execute(WorkspaceAction.java:119) at org.eclipse.ui.actions.WorkspaceAction$2.run(WorkspaceAction.java:362) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62) !SUBENTRY 1 org.eclipse.core.resources 4 566 Apr 08, 2004 10:32:17.269 !MESSAGE Errors during build. !SUBENTRY 2 com.rational.clearcase 4 4 Apr 08, 2004 10:32:17.269 !MESSAGE File could not be checked out(not enabled) !SUBENTRY 1 com.rational.clearcase 4 4 Apr 08, 2004 10:32:17.269 !MESSAGE File could not be checked out(not enabled) ******************** checkout problem in java editor *************************** !ENTRY org.eclipse.core.runtime 4 2 Apr 08, 2004 12:20:22.547 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core. runtime". !STACK 0 java.lang.IllegalArgumentException: Attempted to beginRule: R/, does not match outer scope rule: F/PCRReader/java/com/philips/gxr/cr/pcrreader at org.eclipse.core.internal.runtime.Assert.isLegal(Assert.java:56) at org.eclipse.core.internal.jobs.ImplicitJobs$ThreadJob. illegalPush(ImplicitJobs.java:86) at org.eclipse.core.internal.jobs.ImplicitJobs$ThreadJob.push(ImplicitJobs. java:167) at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:241) at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:149) at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager. java:88) at org.eclipse.core.internal.resources.Workspace. prepareOperation(Workspace.java:1521) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1554) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1578) at com.rational.clearcase.RSCMService.update(RSCMService.java:3407) at com.rational.clearcase.RSCMService.updateUI(RSCMService.java:3549) at com.rational.clearcase.RSCMService.updateUI(RSCMService.java:3565) at com.rational.clearcase.RSCMService.onDemand(RSCMService.java:1515) at com.rational.clearcase.team.core.clearcase. CCFileModificationValidator$1.run(CCFileModificationValidator.java:176) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:135) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:25) at org.eclipse.swt.widgets.Display.syncExec(Display.java:2902) at com.rational.clearcase.team.core.clearcase.CCFileModificationValidator. validateEdit(CCFileModificationValidator.java:172) at org.eclipse.team.internal.core.FileModificationValidatorManager. validateEdit(FileModificationValidatorManager.java:70) at org.eclipse.core.internal.resources.Workspace$5.run(Workspace.java:1755) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform. java:610) at org.eclipse.core.runtime.Platform.run(Platform.java:521) at org.eclipse.core.internal.resources.Workspace.validateEdit(Workspace. java:1761) at org.eclipse.core.internal.filebuffers.ResourceFileBuffer. validateState(ResourceFileBuffer.java:312) at org.eclipse.ui.editors.text.TextFileDocumentProvider$4. execute(TextFileDocumentProvider.java:822) at org.eclipse.ui.editors.text. TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider. java:94) at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation. execute(WorkspaceModifyDelegatingOperation.java:67) at org.eclipse.ui.actions.WorkspaceModifyOperation$1. run(WorkspaceModifyOperation.java:91) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1559) at org.eclipse.ui.actions.WorkspaceModifyOperation. run(WorkspaceModifyOperation.java:105) at org.eclipse.ui.editors.text.WorkspaceOperationRunner. run(WorkspaceOperationRunner.java:73) at org.eclipse.ui.editors.text.WorkspaceOperationRunner. run(WorkspaceOperationRunner.java:63) at org.eclipse.ui.editors.text.TextFileDocumentProvider. executeOperation(TextFileDocumentProvider.java:392) at org.eclipse.ui.editors.text.TextFileDocumentProvider. validateState(TextFileDocumentProvider.java:835) at org.eclipse.ui.texteditor.AbstractTextEditor. validateState(AbstractTextEditor.java:3029) at org.eclipse.ui.texteditor.AbstractTextEditor$16.run(AbstractTextEditor. java:3077) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84) at org.eclipse.ui.texteditor.AbstractTextEditor. validateEditorInputState(AbstractTextEditor.java:3072) at org.eclipse.ui.texteditor. AbstractTextEditor$ElementStateListener$Validator.verifyText(AbstractTextEditor. java:208) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java: 193) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:769) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:793) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:778) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:586) at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:5539) at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:6391) at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2526) at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:4948) at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:4971) at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4720) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:769) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:793) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:778) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1720) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1716) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3041) at org.eclipse.swt.widgets.Control.windowProc(Control.java:2944) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3146) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1374) at org.eclipse.swt.internal.BidiUtil.windowProc(BidiUtil.java:647) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1450) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2254) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1562) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1536) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java: 257) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:90) at org.eclipse.core.internal.runtime.PlatformActivator$1. run(PlatformActivator.java:277) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 239) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 117) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:267) at org.eclipse.core.launcher.Main.run(Main.java:692) at org.eclipse.core.launcher.Main.main(Main.java:676)
Yes, this will be fixed in a way that allows for backward compatibility for older team providers. Priority P1 means we won't ship Eclipse 3.0 without it.
I have released new methods on TeamHook to allow repository providers to change the scheduling rules used for all workspace modifying operations. The TeamHook then needs to delegate this down to the RepositoryProvider API. Moving to Team component for remaining implementation work.
*** Bug 57675 has been marked as a duplicate of this bug. ***
*** Bug 58593 has been marked as a duplicate of this bug. ***
I have released the changes for Team and CVS. Leaving open as a reminder to test the effects of the pessimistic rule factory on Eclipse in general (i.e. is everyone a good citizen?)
*** Bug 57668 has been marked as a duplicate of this bug. ***
It would be nice to mark this as fixed. Having open P1 bugs this close to the release does not look good. If the remaining issue is testing, we can open a separate bug report for writing tests.
GOod enough. Closing
*** Bug 62589 has been marked as a duplicate of this bug. ***