You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2019/10/14 22:12:36 UTC
[maven] 03/04: [MNG-6656] Fix bug in AbstractEventXMLFilter
(removed processed events)
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MNG-6656
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 87601ecee7e0b631f98d12f1e43751008a46a67e
Author: rfscholte <rf...@apache.org>
AuthorDate: Mon Oct 14 20:40:01 2019 +0200
[MNG-6656] Fix bug in AbstractEventXMLFilter (removed processed events)
---
.../xml/sax/filter/AbstractEventXMLFilter.java | 10 ++++--
.../sax/filter/ReactorDependencyXMLFilterTest.java | 38 ++++++++++++++++++++++
2 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractEventXMLFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractEventXMLFilter.java
index d52cb7c..633c533 100644
--- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractEventXMLFilter.java
+++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractEventXMLFilter.java
@@ -1,5 +1,7 @@
package org.apache.maven.xml.sax.filter;
+import java.util.ArrayDeque;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -21,8 +23,10 @@ package org.apache.maven.xml.sax.filter;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Queue;
import org.apache.maven.xml.sax.SAXEvent;
import org.apache.maven.xml.sax.SAXEventFactory;
@@ -40,7 +44,7 @@ import org.xml.sax.ext.LexicalHandler;
*/
abstract class AbstractEventXMLFilter extends AbstractSAXFilter
{
- private List<SAXEvent> saxEvents = new ArrayList<>();
+ private Queue<SAXEvent> saxEvents = new ArrayDeque<>();
private SAXEventFactory eventFactory;
@@ -138,9 +142,9 @@ abstract class AbstractEventXMLFilter extends AbstractSAXFilter
}
// not with streams due to checked SAXException
- for ( SAXEvent saxEvent : saxEvents )
+ while( !saxEvents.isEmpty() )
{
- saxEvent.execute();
+ saxEvents.poll().execute();
}
}
diff --git a/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilterTest.java b/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilterTest.java
index 9cf713c..4367982 100644
--- a/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilterTest.java
+++ b/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilterTest.java
@@ -106,4 +106,42 @@ public class ReactorDependencyXMLFilterTest extends AbstractXMLFilterTests
assertThat( actual ).and( expected ).ignoreWhitespace().areIdentical();
}
+ @Test
+ public void multipleDependencies() throws Exception {
+ String input = "<project>\n" +
+ " <modelVersion>4.0.0</modelVersion>\n" +
+ " <groupId>tests.project</groupId>\n" +
+ " <artifactId>duplicate-plugin-defs-merged</artifactId>\n" +
+ " <version>1</version>\n" +
+ " <build>\n" +
+ " <plugins>\n" +
+ " <plugin>\n" +
+ " <artifactId>maven-compiler-plugin</artifactId>\n" +
+ " <dependencies>\n" +
+ " <dependency>\n" +
+ " <groupId>group</groupId>\n" +
+ " <artifactId>first</artifactId>\n" +
+ " <version>1</version>\n" +
+ " </dependency>\n" +
+ " </dependencies>\n" +
+ " </plugin>\n" +
+ " <plugin>\n" +
+ " <artifactId>maven-compiler-plugin</artifactId>\n" +
+ " <dependencies>\n" +
+ " <dependency>\n" +
+ " <groupId>group</groupId>\n" +
+ " <artifactId>second</artifactId>\n" +
+ " <version>1</version>\n" +
+ " </dependency>\n" +
+ " </dependencies>\n" +
+ " </plugin>\n" +
+ " </plugins>\n" +
+ " </build>\n" +
+ "</project>";
+ String expected = input;
+
+ String actual = transform( input );
+
+ assertThat( actual ).and( expected ).areIdentical();
+ }
}