[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 Feb 9 17:59:21 EST 2007


  User: mculpepper
  Date: 07/02/09 17:59:21

  Modified:    core/plugins/org.jboss.ide.eclipse.packages.core/src/main/org/jboss/ide/eclipse/packages/core/model/internal 
                        PackagesModel.java
  Log:
  fixed a NPE when .packages contains nothing or bad content. also added a check in attach() to make sure the node's parents are all attached as well
  
  Revision  Changes    Path
  1.13      +18 -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.12
  retrieving revision 1.13
  diff -u -b -r1.12 -r1.13
  --- PackagesModel.java	9 Feb 2007 19:09:40 -0000	1.12
  +++ PackagesModel.java	9 Feb 2007 22:59:21 -0000	1.13
  @@ -119,6 +119,14 @@
   					XbPackages packages = XMLBinding.unmarshal(packagesFile.getContents(), monitor);
   					monitor.worked(1);
   					
  +					if (packages == null)
  +					{
  +						// Empty / non-working XML file loaded
  +						Trace.trace(getClass(), "WARNING: .packages file for project " + project.getName() + " is empty or contains the wrong content");
  +						projectBeingRegistered = null;
  +						return;
  +					}
  +					
   					xbPackages.put(project, packages);
   					createPackageNodeImpl(project, packages, null);
   					linkPackageReferences(project);
  @@ -625,11 +633,20 @@
   		return filesetImpl;
   	}
   
  +	private boolean areAnyNodeParentsDetached (IPackageNode node)
  +	{
  +		for (IPackageNode parent = node.getParent(); parent != null; parent = parent.getParent() )
  +		{
  +			if (! ((PackageNodeImpl)parent).isDetached()) return false;
  +		}
  +		return true;
  +	}
  +	
   	public void attach (IPackageNode nodeToAttach, IProgressMonitor monitor)
   	{
   		PackageNodeImpl node = (PackageNodeImpl) nodeToAttach;
   		
  -		if (node.isDetached())
  +		if (node.isDetached() && areAnyNodeParentsDetached(node))
   		{
   			node.setDetached(false);
   			
  
  
  



More information about the jboss-cvs-commits mailing list