Avoided unwanted line in logs: [ERROR] null
diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtil.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtil.java
index 028b7ba..d9e3467 100644
--- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtil.java
+++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/ParallelComputerUtil.java
@@ -21,6 +21,11 @@
import org.apache.maven.surefire.junitcore.JUnitCoreParameters;
import org.apache.maven.surefire.testset.TestSetFailedException;
+import org.junit.runner.Description;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
/**
* An algorithm which configures {@link ParallelComputer} with allocated thread resources by given
@@ -33,6 +38,10 @@
*/
final class ParallelComputerUtil
{
+ private static final Collection<Description> UNUSED_DESCRIPTIONS =
+ Arrays.asList( null, Description.createSuiteDescription( "null" ), Description.TEST_MECHANISM,
+ Description.EMPTY );
+
private static int availableProcessors = Runtime.getRuntime().availableProcessors();
private ParallelComputerUtil()
@@ -98,6 +107,37 @@
}
}
+ static boolean isUnusedDescription( Description examined )
+ {
+ if ( UNUSED_DESCRIPTIONS.contains( examined ) )
+ {
+ return true;
+ }
+ else
+ {
+ // UNUSED_DESCRIPTIONS ensures that "examined" cannot be null
+ for ( Description unused : UNUSED_DESCRIPTIONS )
+ {
+ if ( unused != null && unused.getDisplayName().equals( examined.getDisplayName() ) )
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+
+ static void removeUnusedDescriptions( Collection<Description> examined )
+ {
+ for ( Iterator<Description> it = examined.iterator(); it.hasNext(); )
+ {
+ if ( isUnusedDescription( it.next() ) )
+ {
+ it.remove();
+ }
+ }
+ }
+
private static Concurrency concurrencyForUnlimitedThreads( JUnitCoreParameters params )
{
Concurrency concurrency = new Concurrency();
diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java
index 79f6bd9..7f74460 100644
--- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java
+++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/Scheduler.java
@@ -22,7 +22,6 @@
import org.junit.runner.Description;
import org.junit.runners.model.RunnerScheduler;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Set;
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -46,9 +45,6 @@
public class Scheduler
implements RunnerScheduler
{
- private static final Collection<Description> UNUSED_DESCRIPTIONS =
- Arrays.asList( null, Description.TEST_MECHANISM, Description.EMPTY );
-
private final Balancer balancer;
private final SchedulingStrategy strategy;
@@ -244,7 +240,7 @@
shutdown = true;
try
{
- if ( started && !UNUSED_DESCRIPTIONS.contains( description ) )
+ if ( started && !ParallelComputerUtil.isUnusedDescription( description ) )
{
if ( executedTests != null )
{
diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java
index 87c1114..639e597 100644
--- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java
+++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/pc/SingleThreadScheduler.java
@@ -22,7 +22,6 @@
import org.junit.runner.Description;
import org.junit.runners.model.RunnerScheduler;
-import java.util.Arrays;
import java.util.Collection;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ExecutorService;
@@ -41,9 +40,6 @@
*/
final class SingleThreadScheduler
{
- private static final Collection<Description> UNUSED_DESCRIPTIONS =
- Arrays.asList( null, Description.TEST_MECHANISM, Description.EMPTY );
-
private final ExecutorService pool = newPool();
private final Scheduler master = new Scheduler( null, SchedulingStrategies.createParallelSharedStrategy( pool ) );
@@ -86,7 +82,7 @@
private Collection<Description> copyExisting( Collection<Description> descriptions )
{
Collection<Description> activeChildren = new ConcurrentLinkedQueue<Description>( descriptions );
- activeChildren.removeAll( UNUSED_DESCRIPTIONS );
+ ParallelComputerUtil.removeUnusedDescriptions( activeChildren );
return activeChildren;
}
}
\ No newline at end of file