[311981] Adding user library to project other than web and EAR creates cycle dependency
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/AbstractResourceListVirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/AbstractResourceListVirtualComponent.java
index 1740d4e..838187d 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/AbstractResourceListVirtualComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/AbstractResourceListVirtualComponent.java
@@ -32,6 +32,28 @@
 		this.project = p;
 		this.referencingComp = referencingComponent;
 	}
+	
+	@Override
+	public boolean equals(Object o) {
+		if(this == o){
+			return true;
+		}
+		if(o == null){
+			return false;
+		}
+		if(!this.getClass().equals(o.getClass())){
+			return false;
+		}
+		AbstractResourceListVirtualComponent other = (AbstractResourceListVirtualComponent)o;
+		return (project == null ? other.project == null : project.equals(other.project)) && 
+			   (referencingComp == null ? other.referencingComp == null : referencingComp.equals(other.referencingComp));
+	}
+	
+	@Override
+	public int hashCode() {
+		return super.hashCode() + (project == null ? 0 : project.hashCode()) + (referencingComp == null ? 0 : referencingComp.hashCode());
+	}
+	
 
 	public void create(int updateFlags, IProgressMonitor aMonitor)
 			throws CoreException {