[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal ...

Marshall Culpepper mculpepper at jboss.com
Fri Dec 8 11:29:40 EST 2006


  User: mculpepper
  Date: 06/12/08 11:29:40

  Modified:    core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal 
                        PackagesModel.java
  Log:
  attempting to fix an endless loop when a project is registered that fires an event to UI that causes another register.. etc..
  
  Revision  Changes    Path
  1.9       +9 -1      jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal/PackagesModel.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PackagesModel.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal/PackagesModel.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -b -r1.8 -r1.9
  --- PackagesModel.java	6 Dec 2006 17:47:33 -0000	1.8
  +++ PackagesModel.java	8 Dec 2006 16:29:40 -0000	1.9
  @@ -70,6 +70,7 @@
   	private Hashtable xbPackages;
   	private ArrayList buildListeners;
   	private ArrayList modelListeners;
  +	private IProject projectBeingRegistered;
   	
   	private PackagesModel ()
   	{
  @@ -79,6 +80,7 @@
   		packageTypes = new Hashtable();
   		buildListeners = new ArrayList();
   		modelListeners = new ArrayList();
  +		projectBeingRegistered = null;
   		
   		loadPackageTypes();
   	}
  @@ -93,6 +95,7 @@
   	
   	public void registerProject(IProject project, IProgressMonitor monitor)
   	{
  +		projectBeingRegistered = project;
   		monitor.beginTask("Loading configuration...", XMLBinding.NUM_UNMARSHAL_MONITOR_STEPS + 2);
   		
   		IFile packagesFile = project.getFile(PROJECT_PACKAGES_FILE);
  @@ -113,6 +116,7 @@
   				Trace.trace(PackagesModel.class, e);
   			}
   		}
  +		projectBeingRegistered = null;
   	}
   	
   	public IPackage createPackage(IProject project, boolean isTopLevel)
  @@ -434,12 +438,16 @@
   		if (!force && !modelBridge.containsKey(source)) //not registered in the model, no event should be broadcast
   			return;
   		
  +		if (projectBeingRegistered != null && source.getProject().equals(projectBeingRegistered))
  +			return;
  +		
   		PackageNodeImpl nodeImpl = (PackageNodeImpl) source;
   		if (!nodeImpl.isWorkingCopy())
   		{
   			runnable.run();
   		}
   	}
  +	
   	protected void fireEvent (IPackageNode source, Runnable runnable)
   	{
   		fireEvent(source, false, runnable);
  
  
  



More information about the jboss-cvs-commits mailing list