Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] Programmatically creating maketargets: Attempted to beginRule: R/, does not match outer scope rule

I have seen this on occasion with managed build projects as well.  I
looked into it at one point but then had higher priority interrupts take
precedence.  It definitely needs further looking into.  When this
happens in the MBS, I believe that the indexer is always also running.
I'm "wild a** guessing" that the problem may have to do with the level
of resource locking that the indexer is doing (file vs. project leveling
locking).

Regards,
Leo

-----Original Message-----
From: cdt-dev-admin@xxxxxxxxxxx [mailto:cdt-dev-admin@xxxxxxxxxxx] On
Behalf Of cebarne2@xxxxxxxxxxxxxxxxxxx
Sent: Wednesday, January 12, 2005 10:02 AM
To: cdt-dev@xxxxxxxxxxx
Subject: [cdt-dev] Programmatically creating maketargets: Attempted to
beginRule: R/, does not match outer scope rule

I've run into a peculiar problem with CDT 2.1 (SDK).  We have developed
our
own makefile generator for use with Standard CDT projects.  This has
worked
just fine throughout CDT 1.2 and 2.0.x.  Now, I have just upgraded to
CDT
2.1, and I get an exception when my makefile generator tries to
automatically remove or create its own make targets.  When it works, it
should manage the following targets:

Collins Make Build
Collins Make Rebuild
Collins Make Clean

Whenever I press our "Generate Makefiles and Make Targets" button, it
should remove the previous make targets (by name) if they exist and then
immediately create the make target again.

After upgrading to CDT 2.1, I often get exceptions when I perform these
operations.  If I close the project and reopen it, it might work again.
But if I shutdown Eclipse and reopen it, then the next time I perform
these
operations I get exceptions.

Can anyone comment on what changed in CDT 2.1 that may have caused this?

Thanks,

Chad Barnes
Rockwell Collins Inc.

[excerpt from
com.rockwellcollins.cdt.managedMake.actions.ProjectBuilderAction.createM
akeTargets()]
.
.
.
[412] if (fTargetManager.findTarget(fContainer, targetName) != null) {
[413]
fTargetManager.removeTarget(fTargetManager.findTarget(fContainer,
targetName));  //remove the target by name
[414] }
[415] fTargetManager.addTarget(fContainer, targets[i]);  //create the
target again
.
.
.

First attempt to generate my make targets:

java.lang.IllegalArgumentException: Attempted to beginRule: R/, does not
match outer scope rule: P/CH47F_Development
      at
org.eclipse.core.internal.runtime.Assert.isLegal(Assert.java:58)
      at
org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:106)
      at
org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:200)
      at
org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:58)
      at
org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:170)
      at
org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java
:95)
      at
org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace
.java:1628)
      at
org.eclipse.core.internal.resources.File.setContents(File.java:335)
      at
org.eclipse.cdt.internal.core.CDescriptor$1.run(CDescriptor.java:341)
      at
org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
      at
org.eclipse.cdt.internal.core.CDescriptor.save(CDescriptor.java:309)
      at
org.eclipse.cdt.internal.core.CDescriptor.saveProjectData(CDescriptor.ja
va:575)
      at
org.eclipse.cdt.make.internal.core.ProjectTargets.translateDocumentToCDT
Project(ProjectTargets.java:282)
      at
org.eclipse.cdt.make.internal.core.ProjectTargets.saveTargets(ProjectTar
gets.java:240)
      at
org.eclipse.cdt.make.internal.core.MakeTargetManager.writeTargets(MakeTa
rgetManager.java:264)
      at
org.eclipse.cdt.make.internal.core.MakeTargetManager.removeTarget(MakeTa
rgetManager.java:93)
      at
com.rockwellcollins.cdt.managedMake.actions.ProjectBuilderAction.createM
akeTargets(ProjectBuilderAction.java:413)
      at
com.rockwellcollins.cdt.managedMake.actions.ProjectBuilderAction.createM
akeFiles(ProjectBuilderAction.java:320)
      at
com.rockwellcollins.cdt.managedMake.actions.MakefileGenerator.genMake(Ma
kefileGenerator.java:54)
      at
com.rockwellcollins.cdt.managedConfig.propertyPages.CMMPropertyPage$4.ru
n(CMMPropertyPage.java:562)
      at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext
.java:303)
      at
org.eclipse.jface.operation.ModalContext.run(ModalContext.java:253)
      at
org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialo
g.java:397)
      at
com.rockwellcollins.cdt.managedConfig.propertyPages.CMMPropertyPage.auto
GenerateMakefiles(CMMPropertyPage.java:559)
      at
com.rockwellcollins.cdt.managedConfig.propertyPages.CMMPropertyPage.perf
ormApply(CMMPropertyPage.java:542)
.
.
.

Second attempt (immediately following first)

java.lang.IllegalArgumentException: Attempted to beginRule: R/, does not
match outer scope rule: P/CH47F_Development
      at
org.eclipse.core.internal.runtime.Assert.isLegal(Assert.java:58)
      at
org.eclipse.core.internal.jobs.ThreadJob.illegalPush(ThreadJob.java:106)
      at
org.eclipse.core.internal.jobs.ThreadJob.push(ThreadJob.java:200)
      at
org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:58)
      at
org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:170)
      at
org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java
:95)
      at
org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace
.java:1628)
      at
org.eclipse.core.internal.resources.File.setContents(File.java:335)
      at
org.eclipse.cdt.internal.core.CDescriptor$1.run(CDescriptor.java:341)
      at
org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
      at
org.eclipse.cdt.internal.core.CDescriptor.save(CDescriptor.java:309)
      at
org.eclipse.cdt.internal.core.CDescriptor.saveProjectData(CDescriptor.ja
va:575)
      at
org.eclipse.cdt.make.internal.core.ProjectTargets.translateDocumentToCDT
Project(ProjectTargets.java:282)
      at
org.eclipse.cdt.make.internal.core.ProjectTargets.saveTargets(ProjectTar
gets.java:240)
      at
org.eclipse.cdt.make.internal.core.MakeTargetManager.writeTargets(MakeTa
rgetManager.java:264)
      at
org.eclipse.cdt.make.internal.core.MakeTargetManager.addTarget(MakeTarge
tManager.java:77)
      at
com.rockwellcollins.cdt.managedMake.actions.ProjectBuilderAction.createM
akeTargets(ProjectBuilderAction.java:415)
      at
com.rockwellcollins.cdt.managedMake.actions.ProjectBuilderAction.createM
akeFiles(ProjectBuilderAction.java:320)
      at
com.rockwellcollins.cdt.managedMake.actions.MakefileGenerator.genMake(Ma
kefileGenerator.java:54)
      at
com.rockwellcollins.cdt.managedMake.actions.MakeOnlyAction$1.run(MakeOnl
yAction.java:46)
      at
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalCon
text.java:101)

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top