This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new cc6a2cb29e UnsupportedOperationException in maven dependency graph 
"Exclude dependency" and "Fix Version Conflict" actions
     new 379a0ab42b Merge pull request #5431 from matthiasblaesing/github-5402
cc6a2cb29e is described below

commit cc6a2cb29e346b1db601a573c8cd7473907a28f7
Author: Matthias Bläsing <mblaes...@doppel-helix.eu>
AuthorDate: Sat Feb 4 22:02:31 2023 +0100

    UnsupportedOperationException in maven dependency graph "Exclude 
dependency" and "Fix Version Conflict" actions
    
    The two actions:
    
    org.netbeans.modules.maven.graph.FixVersionConflictAction
    org.netbeans.modules.maven.graph.ExcludeDepAction
    
    need to manipulate the duplicate or conflict list. The returned set is
    read-only, so a companion method to addDuplicateOrConflict
    removeDuplicateOrConflict is added to remove a node from the list.
    
    Closes: #5402
---
 java/java.graph/manifest.mf                                         | 2 +-
 .../src/org/netbeans/modules/java/graph/DependencyGraphScene.java   | 3 +--
 java/java.graph/src/org/netbeans/modules/java/graph/GraphNode.java  | 6 +++++-
 java/maven.graph/nbproject/project.xml                              | 2 +-
 .../src/org/netbeans/modules/maven/graph/MavenAction.java           | 6 ++++--
 5 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/java/java.graph/manifest.mf b/java/java.graph/manifest.mf
index 56a77455f1..0fa9c9b458 100644
--- a/java/java.graph/manifest.mf
+++ b/java/java.graph/manifest.mf
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
 AutoUpdate-Show-In-Client: false
 OpenIDE-Module: org.netbeans.modules.java.graph/1
 OpenIDE-Module-Localizing-Bundle: 
org/netbeans/modules/java/graph/Bundle.properties
-OpenIDE-Module-Specification-Version: 1.20
+OpenIDE-Module-Specification-Version: 1.21
 
diff --git 
a/java/java.graph/src/org/netbeans/modules/java/graph/DependencyGraphScene.java 
b/java/java.graph/src/org/netbeans/modules/java/graph/DependencyGraphScene.java
index 893cb98d67..846e311cd4 100644
--- 
a/java/java.graph/src/org/netbeans/modules/java/graph/DependencyGraphScene.java
+++ 
b/java/java.graph/src/org/netbeans/modules/java/graph/DependencyGraphScene.java
@@ -482,8 +482,7 @@ public class DependencyGraphScene<I extends 
GraphNodeImplementation> extends Gra
 
         if(supportsVersions()) {
             // other important paths
-            ArrayList<I> representants = new 
ArrayList<>(node.getDuplicatesOrConflicts());
-            for (GraphNodeImplementation curRep : representants) {
+            for (GraphNodeImplementation curRep : 
node.getDuplicatesOrConflicts()) {
                 addPathToRoot(curRep, curRep.getParent(), otherPathsEdges, 
importantNodes);
             }
         }
diff --git a/java/java.graph/src/org/netbeans/modules/java/graph/GraphNode.java 
b/java/java.graph/src/org/netbeans/modules/java/graph/GraphNode.java
index 0e6445d085..9f0e52634d 100644
--- a/java/java.graph/src/org/netbeans/modules/java/graph/GraphNode.java
+++ b/java/java.graph/src/org/netbeans/modules/java/graph/GraphNode.java
@@ -42,7 +42,7 @@ public final class GraphNode<I extends 
GraphNodeImplementation> {
 
     private I impl, parentAfterFix;
     
-    private final  HashSet<I> duplicates;
+    private final Set<I> duplicates;
     private int level; 
     private int managedState = UNMANAGED;
 
@@ -72,6 +72,10 @@ public final class GraphNode<I extends 
GraphNodeImplementation> {
         duplicates.add(i);
     }
 
+    public void removeDuplicateOrConflict(I i) {
+        duplicates.remove(i);
+    }
+
     public Set<I> getDuplicatesOrConflicts() {
         return Collections.unmodifiableSet(duplicates);
     }
diff --git a/java/maven.graph/nbproject/project.xml 
b/java/maven.graph/nbproject/project.xml
index 010dacdbcf..823d736d32 100644
--- a/java/maven.graph/nbproject/project.xml
+++ b/java/maven.graph/nbproject/project.xml
@@ -57,7 +57,7 @@
                     <compile-dependency/>
                     <run-dependency>
                         <release-version>1</release-version>
-                        <specification-version>1.1</specification-version>
+                        <specification-version>1.21</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git 
a/java/maven.graph/src/org/netbeans/modules/maven/graph/MavenAction.java 
b/java/maven.graph/src/org/netbeans/modules/maven/graph/MavenAction.java
index bdaf401ab3..e36a6a2487 100644
--- a/java/maven.graph/src/org/netbeans/modules/maven/graph/MavenAction.java
+++ b/java/maven.graph/src/org/netbeans/modules/maven/graph/MavenAction.java
@@ -164,7 +164,9 @@ public abstract class MavenAction extends AbstractAction {
             }
         }
         // note, must be called before node removing edges to work correctly
-        node.getDuplicatesOrConflicts().removeAll(toExclude);
+        for(MavenDependencyNode mdn: toExclude) {
+            node.removeDuplicateOrConflict(mdn);
+        }
         for (GraphEdge<MavenDependencyNode> age : edges2Exclude) {
             scene.removeEdge(age);
             age.getSource().removeChild(age.getTarget());
@@ -210,7 +212,7 @@ public abstract class MavenAction extends AbstractAction {
             children.add(childNode);
             scene.removeEdge(age);
             age.getSource().removeChild(dn);
-            childNode.getDuplicatesOrConflicts().remove(dn);
+            childNode.removeDuplicateOrConflict(dn);
         }
         // recurse to children
         for (GraphNode age : children) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to