Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-core-dev] A question regarding the BuildManager

Hi,
I had some problems with one of my builders not kicking in so I did some debugging. I ended up in class org.eclipse.core.internal.events.BuildManager and found my problem. I want to ask here first if this is intentional or if it's a bug. But from the looks of it, the build manager will simply skip all builders following a builder that isn't triggered, even if the subsequent builders indeed would be triggered. Is this the way it's supposed to work?

I'm using Eclipse 3.3M6 and the source in question looks like this (starting at line 186). Note the return statement after the if(!command.isBuilding(trigger)):

protected void basicBuild(IProject project, int trigger, ICommand[] commands, MultiStatus status, IProgressMonitor monitor) {
       try {
           for (int i = 0; i < commands.length; i++) {
               checkCanceled(trigger, monitor);
               BuildCommand command = (BuildCommand) commands[i];
//don't build if this builder doesn't respond to the given trigger
               if (!command.isBuilding(trigger)) {
                   monitor.worked(1);
                   return;
               }
               IProgressMonitor sub = Policy.subMonitorFor(monitor, 1);
IncrementalProjectBuilder builder = getBuilder(project, command, i, status);
               if (builder != null)
basicBuild(trigger, builder, command.getArguments(false), status, sub);
           }
       } catch (CoreException e) {
           status.add(e.getStatus());
       }
   }

Kind regards,
Thomas Hallgren



Back to the top