[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