[104008]commited for NA
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphManager.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphManager.java
index 1892075..1fe13ef 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphManager.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/DependencyGraphManager.java
@@ -123,6 +123,7 @@
* singleton manager method.
*/
public DependencyGraph getDependencyGraph() {
+ constructIfNecessary();
return DependencyGraph.getInstance();
}
}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceComponentOperation.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceComponentOperation.java
index 57e3b28..4f8a679 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceComponentOperation.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/operation/RemoveReferenceComponentOperation.java
@@ -62,9 +62,14 @@
for (int i = 0; i < modList.size(); i++) {
ComponentHandle handle = (ComponentHandle) modList.get(i);
- IVirtualComponent comp = ComponentCore.createComponent(handle.getProject(), handle.getName());
- if (Arrays.asList(comp.getReferencingComponents()).contains(sourceComp)) {
- removeRefereneceInComponent(sourceComp,sourceComp.getReference(comp.getName()));
+ IVirtualReference ref = sourceComp.getReference(handle.getName());
+ if( ref != null && ref.getReferencedComponent() != null && ref.getReferencedComponent().isBinary()){
+ removeRefereneceInComponent(sourceComp, ref);
+ }else{
+ IVirtualComponent comp = ComponentCore.createComponent(handle.getProject(), handle.getName());
+ if (Arrays.asList(comp.getReferencingComponents()).contains(sourceComp)) {
+ removeRefereneceInComponent(sourceComp,sourceComp.getReference(comp.getName()));
+ }
}
}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualArchiveComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualArchiveComponent.java
index a043e29..fcb6c3a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualArchiveComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualArchiveComponent.java
@@ -180,4 +180,11 @@
public String getArchiveType(){
return archiveType;
}
+ public boolean equals(Object anOther) {
+ if(anOther instanceof VirtualArchiveComponent) {
+ VirtualArchiveComponent otherComponent = (VirtualArchiveComponent) anOther;
+ return getProject().equals(otherComponent.getProject()) && getName().equals(otherComponent.getName());
+ }
+ return false;
+ }
}