[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[Subclipse-users] Scheduling rule violation thrown from Subeclipse’s call thread when calling Eclipse's move API

From: Weiping Lu <wlu_at_us.ibm.com>
Date: Fri, 21 Jan 2011 18:20:00 -0700

Hi,

Our product (IBM's Rational Method Composer (RMC) based on the open source
Eclipse Process Platform (EPF)) got the following exception thrown from
Subeclipse's call thread when calling Eclipse's
org.eclipse.core.internal.resources.Resource.move(IPath destination,
boolean force, IProgressMonitor monitor) API.

===============================================================================
!ENTRY org.eclipse.core.resources 4 1 2011-01-07 14:41:17.562
!MESSAGE Internal Error
!STACK 0
java.lang.IllegalArgumentException: Attempted to beginRule:
P/50_foundation.essential_elements, does not match outer scope rule:
MultiRule[F/cs50_foundation/workproducts,F/50_foundation.essential_elements/workproducts]
        at java.lang.Throwable.<init>(Throwable.java:67)
        at org.eclipse.core.runtime.Assert.isLegal(Assert.java:62)
        at
org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:120)
        at
org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:230)
        at
org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:58)
        at
org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:232)
        at
org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:117)
        at
org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1747)
        at
org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1522)
        at
org.tigris.subversion.subclipse.core.client.OperationManager.endOperation(OperationManager.java:119)
        at
org.tigris.subversion.subclipse.core.resources.SVNMoveDeleteHook.moveFile(SVNMoveDeleteHook.java:165)
        at
org.eclipse.team.internal.core.MoveDeleteManager.moveFile(MoveDeleteManager.java:87)
        at
org.eclipse.core.internal.resources.Resource.unprotectedMove(Resource.java:1794)
        at
org.eclipse.core.internal.resources.Resource.move(Resource.java:1464)
        at
org.eclipse.core.internal.resources.Resource.move(Resource.java:1432)
        at
org.eclipse.epf.persistence.FileManager.move(FileManager.java:236)
        at
org.eclipse.epf.persistence.FileManager.move(FileManager.java:171)
        at
org.eclipse.epf.persistence.FileManager.rename(FileManager.java:278)
        at
org.eclipse.epf.persistence.MultiFileSaveUtil.move(MultiFileSaveUtil.java:1271)
        at
org.eclipse.epf.persistence.MultiFileXMIResourceImpl.commit(MultiFileXMIResourceImpl.java:1139)
        at
org.eclipse.epf.persistence.MethodLibraryPersister$FailSafePersister.commit(MethodLibraryPersister.java:814)
        at
org.eclipse.epf.persistence.MethodLibraryPersister$FailSafePersister.adjustLocation(MethodLibraryPersister.java:785)
        at
org.eclipse.epf.library.edit.command.MethodElementAddCommand$MoveOperation.save(MethodElementAddCommand.java:2082)
        at
org.eclipse.epf.library.edit.command.MethodElementAddCommand$MoveOperation.access$3(MethodElementAddCommand.java:2063)
        at
org.eclipse.epf.library.edit.command.MethodElementAddCommand$MoveOperation$4.run(MethodElementAddCommand.java:1852)
        at
org.eclipse.epf.library.edit.ui.UIHelper$1.run(UIHelper.java:152)
        at
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
==================================================================================

Here are the steps for reproducing the condition before making
Resource.move call:

(1) The SVN files checked out in the work-space has the following file
structure:

workspace-root\plugin-a
                    \plugin-b\group\sub-group\element.xmi

(2) Use Eclipse's IFolder's create(boolean force, boolean local,
IProgressMonitor monitor) API to create the following two folders
        workspace-root\plugin-a\group
        workspace-root\plugin-a\group\sub-group

(3) Now make the call to org.eclipse.core.internal.resources.Resource.move
with the calling resource instance object associated with the file
"workspace-root\plugin-b\group\sub-group\element.xmi" and the destination
path string associated with the path
"workspace-root\plugin-a\group\sub-group\element.xmi".

When we tried the same scenario with Subversion and ClearCase's clispe SCM
adaptor, it worked fine.

Please let me know if I can submit this into the bug track.

Thanks,

Weiping

------------------------------------------------------
http://subclipse.tigris.org/ds/viewMessage.do?dsForumId=1047&dsMessageId=2699735

To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subclipse.tigris.org].
Received on 2011-01-22 02:33:20 CET

This is an archived mail posted to the Subclipse Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.