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

[Subclipse-users] Bug in 1.1.3 an higher concerning SchedulingRules and workspace modifications during checkout

From: Thomas M. Hofmann <email_at_thomashofmann.com>
Date: 2006-10-11 11:08:41 CEST

Hi,
 
I like to report a bug. I am posting this to the list first as requested allthough I'm pretty sure it is a bug and has not been fixed yet.
 
I checked out trunk/eclipse/core to check.
 
The problem lies within org.tigris.subversion.core.SVNProjectSetCapability in the method private IProject[] checkout(IProject[] projects, Map infoMap, IProgressMonitor monitor) throws TeamException
 
In 1.1.3 a change was introduce where the JobManager is now called like this:
 
ISchedulingRule rule = projects[0].getWorkspace().getRuleFactory().modifyRule(projects[0]);
Platform.getJobManager().beginRule(rule, monitor);
 
The problem is that the beginRule call must be followed by an endRule call. This is not happening in case of an Exception in the code.
 
It currently looks like this:
        } finally {
            monitor.done();
        }
  Platform.getJobManager().endRule(rule);
 
  This fixes the problem:
        
  } finally {
      Platform.getJobManager().endRule(rule);
            monitor.done();
        }
  
The whole thing causes eclipse 3.2.1 to lockup completely when an Exception occurs in the checkout method.

I checked for other occurrences of the beginRule calls and found these:
 
CheckoutAsProjectOperation#execute
RepositoryProviderOperation#execute
 
Both use the finally block to call endRule so I believe this should be just a problem local to SVNProjectSetCapability#checkout.
 
 
Regards,
 
Thomas
Received on Wed Oct 11 11:17:10 2006

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.