1 package org.apache.maven.plugin.surefire.booterclient.output;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23 import java.util.function.Function;
24
25 final class MultipleFailureException
26 extends IOException
27 {
28 void addException( Throwable exception )
29 {
30 addSuppressed( exception );
31 }
32
33 boolean hasNestedExceptions()
34 {
35 return getSuppressed().length != 0;
36 }
37
38 @Override
39 public String getLocalizedMessage()
40 {
41 return toMessage( Throwable::getLocalizedMessage );
42 }
43
44 @Override
45 public String getMessage()
46 {
47 return toMessage( Throwable::getMessage );
48 }
49
50 private String toMessage( Function<Throwable, String> msg )
51 {
52 StringBuilder messages = new StringBuilder();
53 for ( Throwable exception : getSuppressed() )
54 {
55 if ( messages.length() != 0 )
56 {
57 messages.append( '\n' );
58 }
59 String message = msg.apply( exception );
60 messages.append( message == null ? exception.toString() : message );
61 }
62 return messages.toString();
63 }
64 }