Login | Register
My pages Projects Community openCollabNet

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

subclipse
Discussion topic

There will be a brief maintenance window every Friday at 17:00 Pacific.
For further details, see CollabNet's maintenance and upgrade policy.

Back to topic list

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

Author Weiping Lu <wlu at us dot ibm dot com>
Full name Weiping Lu <wlu at us dot ibm dot com>
Date 2011-01-21 17:20:09 PST
Message 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.int​ernal.resources.Reso​urce.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.IllegalArg​umentException: Attempted to beginRule:
P/50_foundation.esse​ntial_elements, does not match outer scope rule:
MultiRule[F/cs50_fou​ndation/workproducts​,F/50_foundation.ess​ential_elements/work​products]
        at java.lang.Throwable.​<init>(Throwab​le.java:67)
        at org.eclipse.core.run​time.Assert.isLegal(​Assert.java:62)
        at
org.eclipse.core.int​ernal.jobs.ThreadJob​.illegalPush(ThreadJ​ob.java:120)
        at
org.eclipse.core.int​ernal.jobs.ThreadJob​.push(ThreadJob.java​:230)
        at
org.eclipse.core.int​ernal.jobs.ImplicitJ​obs.begin(ImplicitJo​bs.java:58)
        at
org.eclipse.core.int​ernal.jobs.JobManage​r.beginRule(JobManag​er.java:232)
        at
org.eclipse.core.int​ernal.resources.Work​Manager.checkIn(Work​Manager.java:117)
        at
org.eclipse.core.int​ernal.resources.Work​space.prepareOperati​on(Workspace.java:17​47)
        at
org.eclipse.core.int​ernal.resources.Reso​urce.refreshLocal(Re​source.java:1522)
        at
org.tigris.subversio​n.subclipse.core.cli​ent.OperationManager​.endOperation(Operat​ionManager.java:119)​
        at
org.tigris.subversio​n.subclipse.core.res​ources.SVNMoveDelete​Hook.moveFile(SVNMov​eDeleteHook.java:165​)
        at
org.eclipse.team.int​ernal.core.MoveDelet​eManager.moveFile(Mo​veDeleteManager.java​:87)
        at
org.eclipse.core.int​ernal.resources.Reso​urce.unprotectedMove​(Resource.java:1794)​
        at
org.eclipse.core.int​ernal.resources.Reso​urce.move(Resource.j​ava:1464)
        at
org.eclipse.core.int​ernal.resources.Reso​urce.move(Resource.j​ava:1432)
        at
org.eclipse.epf.pers​istence.FileManager.​move(FileManager.jav​a:236)
        at
org.eclipse.epf.pers​istence.FileManager.​move(FileManager.jav​a:171)
        at
org.eclipse.epf.pers​istence.FileManager.​rename(FileManager.j​ava:278)
        at
org.eclipse.epf.pers​istence.MultiFileSav​eUtil.move(MultiFile​SaveUtil.java:1271)
        at
org.eclipse.epf.pers​istence.MultiFileXMI​ResourceImpl.commit(​MultiFileXMIResource​Impl.java:1139)
        at
org.eclipse.epf.pers​istence.MethodLibrar​yPersister$FailSafe​Persister.commit(Met​hodLibraryPersister.​java:814)
        at
org.eclipse.epf.pers​istence.MethodLibrar​yPersister$FailSafe​Persister.adjustLoca​tion(MethodLibraryPe​rsister.java:785)
        at
org.eclipse.epf.libr​ary.edit.command.Met​hodElementAddCommand​$MoveOperation.save​(MethodElementAddCom​mand.java:2082)
        at
org.eclipse.epf.libr​ary.edit.command.Met​hodElementAddCommand​$MoveOperation.acce​ss$3(MethodElementA​ddCommand.java:2063)​
        at
org.eclipse.epf.libr​ary.edit.command.Met​hodElementAddCommand​$MoveOperation$4.r​un(MethodElementAddC​ommand.java:1852)
        at
org.eclipse.epf.libr​ary.edit.ui.UIHelper​$1.run(UIHelper.jav​a:152)
        at
org.eclipse.jface.op​eration.ModalContext​$ModalContextThread​.run(ModalContext.ja​va: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\s​ub-group\element.xm​i

(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\plug​in-a\group\sub-gro​up

(3) Now make the call to org.eclipse.core.int​ernal.resources.Reso​urce.move
with the calling resource instance object associated with the file
"workspace-root\plu​gin-b\group\sub-gr​oup\element.xmi" and the destination
path string associated with the path
"workspace-root\plu​gin-a\group\sub-gr​oup\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
Attachments

« Previous message in topic | 1 of 4 | Next message in topic »

Messages

Show all messages in topic

[Subclipse-users] Scheduling rule violation thrown from Subeclipse’s call thread when calling Eclipse's move API Weiping Lu <wlu at us dot ibm dot com> Weiping Lu <wlu at us dot ibm dot com> 2011-01-21 17:20:09 PST
     Re: [Subclipse-users] Scheduling rule violation thrown from Subeclipse¹s call thread when calling Eclipse's move API selsemore Stephen Elsemore 2011-01-22 11:05:29 PST
     RE: [Subclipse-users] Scheduling rule violation thrown from Subeclipse’s call thread when calling Eclipse selsemore Stephen Elsemore 2011-01-24 11:36:46 PST
         RE: [Subclipse-users] Scheduling rule violation thrown from Subeclipse’s call thread when calling Eclipse wlu Weiping Lu 2011-02-02 16:38:54 PST
Messages per page: