[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
Wed Feb 21 14:36:51 EST 2007


  User: mculpepper
  Date: 07/02/21 14:36:51

  Modified:    core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal 
                        PackagesModel.java
  Log:
  access to model listeners is now synchronized
  
  Revision  Changes    Path
  1.20      +75 -53    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.19
  retrieving revision 1.20
  diff -u -b -r1.19 -r1.20
  --- PackagesModel.java	20 Feb 2007 07:18:02 -0000	1.19
  +++ PackagesModel.java	21 Feb 2007 19:36:51 -0000	1.20
  @@ -281,14 +281,21 @@
   	
   	public void addPackagesModelListener (IPackagesModelListener listener)
   	{
  +		synchronized (modelListeners)
  +		{
  +			if (!modelListeners.contains(listener))
   		modelListeners.add(listener);
   	}
  +	}
   	
   	public void removePackagesModelListener (IPackagesModelListener listener)
   	{
  +		synchronized (modelListeners)
  +		{
   		if (modelListeners.contains(listener))
   			modelListeners.remove(listener);
   	}
  +	}
   	
   	public void addPackagesBuildListener (IPackagesBuildListener listener)
   	{
  @@ -556,15 +563,20 @@
   	
   	protected void fireProjectRegistered (final IProject project)
   	{
  +		synchronized (modelListeners)
  +		{
   		for (Iterator iter = modelListeners.iterator(); iter.hasNext(); )
   		{
   			IPackagesModelListener listener = (IPackagesModelListener) iter.next();
   			listener.projectRegistered(project);
   		}
   	}
  +	}
   	
   	protected void fireNodeAdded (final IPackageNode added)
   	{
  +		synchronized (modelListeners)
  +		{
   		// need to make sure if this is a package or folder node that we don't fire the "added" event prematurely
   		// basically we need to check if the node has been properly added to it's parent or not.
   		// since a package can be top level (i.e. no parent), i've added a special "shouldParentBeNull" flag (internal)
  @@ -596,8 +608,11 @@
   			}
   		});
   	}
  +	}
   	
   	protected void fireNodeRemoved (final IPackageNode removed) {
  +		synchronized (modelListeners)
  +		{
   		fireEvent(removed, new Runnable() {
   			public void run() {
   				for (Iterator iter = modelListeners.iterator(); iter.hasNext(); )
  @@ -608,9 +623,12 @@
   			}
   		});
   	}
  +	}
   	
   	protected void fireNodeChanged (final IPackageNode changed)
   	{
  +		synchronized (modelListeners)
  +		{
   		fireEvent(changed, new Runnable() {
   			public void run() {
   				for (Iterator iter = modelListeners.iterator(); iter.hasNext(); )
  @@ -621,9 +639,12 @@
   			}
   		});
   	}
  +	}
   	
   	protected void fireNodeAttached (final IPackageNode attached)
   	{
  +		synchronized (modelListeners)
  +		{
   		fireEvent(attached, new Runnable() {
   			public void run ()
   			{
  @@ -635,6 +656,7 @@
   			}
   		});
   	}
  +	}
   	
   	protected void fireEvent (IPackageNode source, Runnable runnable) {
   		if (projectBeingRegistered != null && source.getProject().equals(projectBeingRegistered))
  
  
  



More information about the jboss-cvs-commits mailing list